【PL/SQL练习】控制结构
1.if判断:
if-then-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5
6 begin
7
8 select ename,sal into v_ename,v_sal from emp where empno=&#
9 dbms_output.put_line('Old salary is: '||v_sal);
10 if v_sal < 8000 then
11 update emp set sal=sal+1000 where empno=#
12 commit;
13 end if;
14 select ename,sal into v_ename,v_sal from emp where empno=#
15 dbms_output.put_line('New salary is: '||v_sal);
16
17 end;
if-then-else-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5
6 begin
7
8 select ename,sal into v_ename,v_sal from emp where empno=&#
9 dbms_output.put_line('Old salary is: '||v_sal);
10 if v_sal < 8000 then
11 update emp set sal=sal+1000 where empno=#
12 commit;
13 else
14 update emp set sal=sal+500 where empno=#
15 commit;
16 end if;
17 select ename,sal into v_ename,v_sal from emp where empno=#
18 dbms_output.put_line('New salary is: '||v_sal);
19
20 end;
if-then-elsif-else-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5 v_job emp.job%type;
6
7 begin
8
9 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
10 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
11 if v_job='SALESMAN' then
12 update emp set sal=sal+1000 where empno=#
13 commit;
14 elsif v_job='CLERK' then
15 update emp set sal=sal+800 where empno=#
16 commit;
17 else
18 update emp set sal=sal+500 where empno=#
19 commit;
20 end if;
21 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
22 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_sal);
23
24 end;
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5 v_job emp.job%type;
6
7 begin
8
9 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
10 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
11 if v_job='SALESMAN' then
12 update emp set sal=sal+1000 where empno=#
13 commit;
14 elsif v_job='CLERK' then
15 update emp set sal=sal+800 where empno=#
16 commit;
17 else
18 update emp set sal=sal+500 where empno=#
19 commit;
20 end if;
21 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
22 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_sal);
23
24 end;
2.case分支判断:
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17 dbms_output.put_line(v_out);
18 end;
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17
18 end;
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17
18 end;
在sql中使用case:
SQL> select ename,job,sal,
2 CASE
3 WHEN JOB='CLERK' THEN SAL+100
4 WHEN JOB='MANAGER' THEN SAL+50
5 WHEN JOB='SALESMAN' THEN SAL+300
6 ELSE
7 SAL
8 END AS ADD_SAL
9 FROM EMP;
decode 语句:
SQL> select ename,sal,JOB,
2 decode (job ,'CLERK',SAL+100,
3 'SALESMAN',SAL+300,
4 'MANAGER',SAL+50,
5 SAL) ADD_SAL
6 FROM EMP;
3.循环语句:
案例:在表中插入数据
①loop基本循环
SQL> declare
2 v_num number :=1;
3 v_count number;
4
5 begin
6
7 loop
8 insert into t1 values (v_num,'tom'||v_num ,'ok');
9 v_num :=v_num + 1;
10
11 exit when v_num >10;
12
13 end loop;
14 commit;
15
16 select count(*) into v_count from t1;
17
18 dbms_output.put_line('T1 rows is :'||v_count);
19
20 end;
②for 循环:
SQL> declare
2 v_count number;
3
4 begin
5
6 for i in 1..10
7 loop
8 insert into t1 values (i,'tom'||i ,'ok');
9 end loop;
10 commit;
11
12 select count(*) into v_count from t1;
13
14 dbms_output.put_line('T1 rows is :'||v_count);
15
16 end;
③while 循环:
SQL> declare
2 v_num number := 1;
3 v_count number ;
4
5 begin
6
7 while v_num <=10 loop
8 insert into t1 values (v_num,'tom'||v_num ,'ok');
9 v_num := v_num + 1;
10 end loop;
11 commit;
12
13 select count(*) into v_count from t1;
14
15 dbms_output.put_line('T1 rows is :'||v_count);
16
17 end;
【PL/SQL练习】控制结构的更多相关文章
- 二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- pl/sql的控制结构,分支、循环、控制
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- PL/SQL程序控制结构及在PL/SQL中更改数据和管理事务
1.条件控制 A. IF条件分支语法: if (条件1) then 语句; elsif (条件2) then 语句; elsif (条件3) then 语句; else 语句; end if; B . ...
- pl/sql的介绍
为什么需要pl/sql编程? 因为使用纯的sql语句来操作数据库,有先天性的技术缺陷: 1.不能模块编程: 2.执行速度慢: 3.安全性有问题: 4.浪费带宽. pl/sql是什么? pl/sql(p ...
- PL/SQL之基础篇
参考文献:<Oracle完全学习手册>第11章 1.PL/SQL概述 PL/SQL(Procedure Language/Structuer Query Language)是Oracle对 ...
- oracle PL/SQL(procedure language/SQL)程序设计--控制结构(if else )
IF逻辑结构:IF-THEN-END IFIF-THEN-ELSE-END IFIF-THEN-ELSIF-END IF 语法 IF condition THEN statements;[ELSIF ...
- oracle pl/sql 控制结构(分支,循环,控制)
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- pl/sql进阶一控制结构
在任何计算机语言(c,java,c#,c++)都有各种控制语句(条件语句,循环结构,顺序控制结构…),在pl/sql中也存在这样的控制结构. 在本部分学校完毕后,希望大家达到: 1)使用各种if语句 ...
- PL/SQL控制结构
顺序结构 按先后顺序 分支判断结构 IF语句 IF condition THEN statements; [ELSIF condition THEN statements;] [ELSE statem ...
- Oracle pl/sql编程值控制结构
以下测试案例均来自于scott方案,运行前请确保该方案解锁. 1.条件分支状语 pl/sql中提供了三种条件分支状语,分别是: if then if then else if then ...
随机推荐
- android学习笔记九——RatingBar
RatingBar==>星级评分条 RatingBar和SeekBar十分相似,它们甚至有相同的父类:AbsSeekBar.两者都允许用户通过拖动来改变进度: 两者最大的区别在于RatingBa ...
- ubuntu双网卡bonding配置(转)
1.安装软件 apt-get install ifenslave 2.修改配置文件 /etc/network/interfaces auto lo iface lo inet loopback ifa ...
- MVC 安装
mvc 4 支持window xp,window 7,window 8, mvc 4 支持vs2010,vs2012 vs2012中包含mvc4; vs2010中需要安装mvc4 安装包:
- 想当然是编程最大的坑,记更新删除过期cookie无效有感
一般来说只要设置了cookie的过期时间,就可以实现删除cookie的作用. 可是我尝试了设置过期时间,清除cookie内容都无效. 最后才发现,我根本没有执行到那段设置过期的代码. 刚开始是因为登出 ...
- 玩转sublime(一)——玩转全局文件搜索/替换
这个快捷键好记,一般的搜索是Ctrl+f,多了一个Shift就是全局搜索
- linux下如何不编译opencv的某些模块
opencv非常庞大,有很多模块,但大部分情况我们可能只会用到三四个模块,此时如果还是直接cmake . & make,将会非常费时,尤其是部署时很麻烦. 所以需要去除掉一些不需要的模块,可参 ...
- HDFS的运行原理(转)
简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Go ...
- c#unity
using UnityEngine;using System.Collections; public class PacmanMove : MonoBehaviour { public float s ...
- bootstrap-按钮样式
<div class="container"> <!-- 按钮的背景色 --> <div class="row"> < ...
- 计算机硬件——pci卡图片
搞IT的还是软硬都要了解的好.1. PCI插槽 2. PCI-E 3. PCI-X 4. mini PCI