一、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)的更多相关文章

  1. oracle学习操作(1)

    一.oracle表及表空间: 1.查看用户.用户表空间等,需要sysdba登陆: select username, default_tablespace from dba_users;   2.一个数 ...

  2. Oracle学习操作(7)用户、权限、角色

    一.oracle用户: 二.权限 1.系统权限: sys登陆创建c##test用户后,给用户c##test授权,并且带有传播性: SQL> create user c##test identif ...

  3. Oracle学习操作(6)函数与存储过程

    一.oracle自定义函数 1.不带参数的函数: 返回t_book表的总条数: SQL> create function getBookCount return number as begin ...

  4. Oracle学习操作(5)触发器

    Oracle触发器 一.触发器简介 具备某些条件,由数据库自动执行的一些DML操作行为: 二.语句触发器 现在数据库创建t_book表:t_booktype表:t_book表的typeid存在外键参考 ...

  5. Oracle OCI操作UDT相关学习(二)

    沿用 Oracle OCI操作UDT相关学习 一文中定义的类型和表. 1.更改数据 在sqldeveloper 中更新数据, update dxl.cust set addr.street='a11' ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. Oracle学习指南

    Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...

  8. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

  9. Oracle学习系列7

    Oracle学习系列7 ************************************************************************************ 关联表 ...

随机推荐

  1. 【转载】oracle索引详解2

    原文URL:http://justplayoop1.iteye.com/blog/1259562 一. 索引介绍 1.1  索引的创建 语法 : CREATE UNIUQE | BITMAP INDE ...

  2. 【转载】oracle之rowid详解

    原文URL:http://www.2cto.com/database/201109/104961.html 本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(exte ...

  3. 双击打开excel时提示:向程序发送命令时出现问题

    重装Excel.Office无效 解决方法如下: 打开excel-excel选项-高级选项卡, 找到最下面的常规-忽略使用动态数据交换(DDE)的其他应用程序,去掉前面的勾勾,保存即可.

  4. pseudo tty破除无法自动输入密码的限制

    没有root权限,没有ssh密钥对,又想自动输入密码咋办? #!/usr/bin/python # simplest builtin python pseudo-tty for ssh passwor ...

  5. 保护 iOS 用户数据安全: Keychain 和 Touch ID

    原文:How To Secure iOS User Data: The Keychain and Touch ID 作者:Tim Mitra 译者:kmyhy 更新说明:本教程由 Tim Mitra ...

  6. 微信小程序代码片段

    微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段. ...

  7. tensorflow读取训练数据方法

    1. 预加载数据 Preloaded data # coding: utf-8 import tensorflow as tf # 设计Graph x1 = tf.constant([2, 3, 4] ...

  8. Struts2访问ServletAPI的三种方式

    web应用中需要访问的ServletAPI,通常只有HttpServletRequest,HttpSession,ServletContext三个,这三个接口分别代表jsp内置对象中的request, ...

  9. codeforces1111 简单题【DE】简要题解

    D 很显然可以用一个背包算出来凑齐i个位置的方案 然后总的答案就是\(dp_{n / 2}\) 然后需要扣掉不符合条件的就是把选出来的数的贡献剪掉的贡献 然后注意因为是多重集合的排列,所以需要乘上\( ...

  10. POJ 3311 Hie with the Pie 先用floyd预处理,再状态压缩

    下面是别人的解题报告链接: http://blog.csdn.net/accry/article/details/6607703 下面是我的代码,我觉得链接中的代码有一点小问题,也许是我想错了吧. # ...