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 top 查询TOP SQL
有时Oracle数据库服务器,系统CPU爆高,通过Top命令可以查看到占用CPU最高的进程 我们需要记住前几个TOP的pid号,带入下面的SQL,到数据库中查询运行的进程.服务器.用户.SQL.等待等 ...
- Solr安装入门
Solr安装入门:http://www.importnew.com/12607.html 查询详解:http://www.360doc.com/content/14/0306/18/203871_35 ...
- python中read()、readline()、readlnes()
在python中 1.file.read()直接按原样读取文件,它通常用于将文件内容放到一个字符串变量中,如果文件大于可用内存,则不可能实现这种处理,因为原来文件里面是str_class,所以 fil ...
- The "Double-Checked Locking is Broken" Declaration
双重检查锁定在延迟初始化的单例模式中见得比较多(单例模式实现方式很多,这里为说明双重检查锁定问题,只选取这一种方式),先来看一个版本: public class Singleton { private ...
- L221
Hyundai has shown off a small model of a car it says can activate robotic legs to walk at 3mph (5km/ ...
- JSONField解决序列化与反序列化字段匹配问题
需求:调用第三方数据,数据格式为Json,并提供一个接口将获取的第三方数据给本公司其他部门调用. 处理流程:第三方Json--反序列化实体--保存到本地数据库--查询数据--序列化Json数据供本公司 ...
- linux下忘记mysql密码的几种找回方法
今天我们主要是讲一下关于linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦.方法一(先进入root权限):# /etc/init.d/mysql stop# m ...
- 图片和span水平垂直居中
<style type="text/css"> .content{ width:20%; height:60px; border:1px solid red; text ...
- 软考------(抽象类、接口) 策略设计模式(strategy) 应用
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征.需要模拟的飞机种类及其特征如表5-1所示. #include <iostream> #include ...
- liunx的文件系统及相关的基本命令
1.ls 当前目录列表 2.cd 切换 3.cd .. 返回上一级 4.cat 文件 显示文件内容 5.mkdir 文件夹名 创建一个新的文件夹 6.rmdir 文件夹名 ...