【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 ...
随机推荐
- 无法找到类:java.lang.ClassNotFoundException: com.mysql.jdbc.driver
转载自:http://blog.csdn.net/huangbiao86/article/details/6428608 问题描述:连接数据库,而明明已经将mysql-connector-java-5 ...
- ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)
一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信 ...
- Datagridview中数字格式列 不显示小数点前面的0
用代码设置DataGridView中某列为数字格式,但当小数为0.*的时候,前面的0却不显示.只显示.*. 看网上有说: 调整本地设置,控制面板-区域和语言选项,在弹出框的区域选项卡中,选择自定义,在 ...
- 黄聪:WordPress固定链接设置的几种方法
wordpress固定链接设置的一些参数: %year%:基于文章发布的年份,比如2010: %monthnum%:基于文章发布的月份,比如01: %day%:基于文章发布当日,比如06: %hour ...
- Freescle cortex-A9(完善中...)
关键词:cortex-A9 , udoo ,mars board ; (内容参考,飞思卡尔官方网站,如有问题请联系本人) i.MX 6系列处理器推出了业界首个具有真正扩展性的多核平台,包括基于ARM® ...
- Expert C# 5.0中的Linq部分
1.先看看.NET中的Linq 2.扩展方法 3.Lambda表达式和表达式树 4.Linq中的延迟操作 5.Linq中的查询方法 5.1分割操作 5.2连接操作 5.3排序操作 5.4分组和连接 5 ...
- c#4
float translation = Time.deltaTime * 10; transform.Translate(0, 0, translation);//沿z轴移动 public cla ...
- JConsole connection failed
最近用jconsole本地连接eclipse失败 , 如下图 : 在eclipse.ini中添加如下代码即可 -Dcom.sun.management.jmxremote.port=9999-Dcom ...
- mac下反编译android apk
所需要的工具 http://pan.baidu.com/disk/home#path=%252Fandroid%252Fdecompile%252Fapktool-all apktool用于将资源文件 ...
- haxm intelx86加速模拟器的安装
http://blog.csdn.net/huang9012/article/details/18082601 如果安装了还出现 创建模拟器 选项 CPU/abi的时候还出现 no system im ...