Oracle学习操作(3)
一、if条件语句
set serverout on;
declare n number:=1;
v varchar(20):='world';
begin
dbms_output.put_line('hello'||n||v);
end;
/ hello1world
declare emp_count number;
begin
select count(*) into emp_count from emp where sal >= 3000;
if(emp_count>0) then
dbms_output.put_line('有'||emp_count||'员工的基本薪资大于等于3000');
else
dbms_output.put_line('没有员工的基本薪资大于等于3000');
end if;
end;
有3个员工的基本薪资大于等于3000
if elseif else if :
SQL> declare emp_count number;
2 begin
3 select count(*) into emp_count from emp where sal >= 3000;
4 if(emp_count=1) then
5 dbms_output.put_line('有1个员工的基本薪资大于等于3000');
6 else if(emp_count>1) then
7 dbms_output.put_line('超过1个员工的基本薪资大于等于3000');
8 else
9 dbms_output.put_line('没有员工的基本薪资大于等于3000');
10 end if;
11 end if;
12 end;
13 /
超过1个员工的基本薪资大于等于3000 PL/SQL 过程已成功完成。
二、case when流程控制语句
SQL> declare emp_count number;
2 begin
3 select count(*) into emp_count from emp where sal >= 3000;
4 case emp_count
5 when 0 then dbms_output.put_line('没有员工的基本薪资大于等于3000');
6 when 1 then dbms_output.put_line('有1个员工的基本薪资大于等于3000');
7 when 2 then dbms_output.put_line('有2个员工的基本薪资大于等于3000');
8 when 3 then dbms_output.put_line('有3个员工的基本薪资大于等于3000');
9 else dbms_output.put_line('超过3个员工的基本薪资大于等于3000');
10 end case;
11 end;
12 /
有3个员工的基本薪资大于等于3000 PL/SQL 过程已成功完成。
三、循环语句
1.无条件循环 loop:
salgrade表:

现在循环grade从2到4,打印出最低薪资,和最高薪资:
SQL> declare g_id number:=2;
2 g_losal number;
3 g_hisal number;
4 begin
5 loop
6 if(g_id>4) then
7 exit;
8 end if;
9
10 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
11 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
12
13 g_id := g_id + 1;
14 end loop;
15 end;
16 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
2.while循环:
SQL> declare g_id number:=2;
2 g_losal number;
3 g_hisal number;
4 begin
5 while(g_id<5) loop
6 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
7 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
8
9 g_id := g_id + 1;
10 end loop;
11 end;
12 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
3、for循环:
SQL> declare g_losal number;
2 g_hisal number;
3 begin
4 for g_id in 2..4 loop
5 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
6 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
7 end loop;
8 end;
9 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
Oracle学习操作(3)的更多相关文章
- oracle学习操作(1)
一.oracle表及表空间: 1.查看用户.用户表空间等,需要sysdba登陆: select username, default_tablespace from dba_users; 2.一个数 ...
- Oracle学习操作(7)用户、权限、角色
一.oracle用户: 二.权限 1.系统权限: sys登陆创建c##test用户后,给用户c##test授权,并且带有传播性: SQL> create user c##test identif ...
- Oracle学习操作(6)函数与存储过程
一.oracle自定义函数 1.不带参数的函数: 返回t_book表的总条数: SQL> create function getBookCount return number as begin ...
- Oracle学习操作(5)触发器
Oracle触发器 一.触发器简介 具备某些条件,由数据库自动执行的一些DML操作行为: 二.语句触发器 现在数据库创建t_book表:t_booktype表:t_book表的typeid存在外键参考 ...
- Oracle OCI操作UDT相关学习(二)
沿用 Oracle OCI操作UDT相关学习 一文中定义的类型和表. 1.更改数据 在sqldeveloper 中更新数据, update dxl.cust set addr.street='a11' ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
随机推荐
- [转载]oracle位图索引
原文URL: http://lzfhope.blog.163.com/blog/static/63639922013119112011947/ 很详细,推荐看5遍
- >CH07-cubemap
使用rendermonkey进行一个天空球的贴图,内容来自<<shaders for gpa>> 不知道是不是用的182版RM的原因,照着书上做一个天空球的CUBEMAP,老不 ...
- Android输入法框架系统(下)
程序焦点获取事件导致输入法显示 从上面可以知道程序获得焦点时,程序端会先间接的调用IMMS的startInput将焦点View绑定到输入法,然后会调用IMMS的windowGainFocus函数,这个 ...
- java并发编程之三--CyclicBarrier的使用
CyclicBarrier 允许一组线程全部等待彼此达到共同屏障点的同步辅助. 循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此. 屏障被称为循环 ,因为它可以在等待的线程被释放 ...
- OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...
- 玩转TypeScript(2) --简单TypeScript类型
通过TypeScript的Module和Class,TypeScript提供了相对于javaScript更加清晰的代码构造,相较于javaScript的.js满天飞的代码,用TypeScript,你可 ...
- 12.2 linux下的线程
什么是线程: 在一个程序里的一个执行路线就叫做线程(thread),更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程 进程与线程: 进程是资源竞争的基本单位 线程是程序执 ...
- magento 如何制作模板
我个人认为Magento模板制作的难点在于不了解Magento的架构,不会调动block.Magento的block调动几乎都是靠xml.在下面的内容会提及如何操作. 制作Magento模板的前提是: ...
- Android Studio中设置提示函数用法
Eclipse有一个很好的功能,就是当你代码调用某个android API时,鼠标移到对应的函数或者方法上,就会自动有一个悬浮窗提示该函数的说明(所包含的参数含义,该方法功能).迁移到Android ...
- 值得收藏的批处理程序 - imsoft.cnblogs
文件强力删除.bat @echo off @echo 文件马上被强制删除 @echo 确定吗? pause DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 虚拟Wi-Fi.ba ...