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 ************************************************************************************ 关联表 ...
随机推荐
- bzoj1087
题解: 状压dp 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; ; int n,m,cnt[ ...
- web项目中的路径问题
“/”表示根路径 1.“/”代表的意思不是固定的,是要根据具体的方法,才能知道在该方法中"/"所代表的含义,同样相对路径也不是固定的,需要根据具体的方法来判断具体是相对哪个路径的相 ...
- python安装大型包时出现错误Unable to find vcvarsall.bat
在windows平台上,据说是安装cpython编写的包时会出现Unable to find vcvarsall.bat这种错误,缺失编译C的环境或组件吧,所以这个包就安装不成功,这个时候简单的方法就 ...
- eclipse中使用Maven新建Servlet2.5的Web项目
前言 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的 ...
- Beta 冲刺(7/7)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10129067.html 作业博客:https://edu.cnblogs.com/campus ...
- 转:ios导航栏设置
原帖:http://www.cocoachina.com/industry/20131104/7287.html 本文提供的代码需要用Xcode 5来执行.如果你还在使用老版本的Xcode,那么在运行 ...
- ubuntu16 intellij idea install lombok plugin
项目中用到lombok,idea会出现类似编译报错的红色,但并不影响运行.所以为了没有类似警告,就在idea上安装lombok插件.file-settings 安装完成之后,按照提示重启idea,问题 ...
- C高级第一次PTA作业
作业要求一 附加题目 写程序证明P++等价于(p)++还是等价于*(p++)? 1.设计思路: (1).题目算法描述 第一步:定义变量p并赋初值 第二步:分三次计算每次分别输出 p++,(p)++,* ...
- calculate MAC,Lisence,Checksum and generate muti-file
/************************************************************************* * calculate MAC,Lisence,C ...
- SUST OJ 1674: 入侵与反击(最长不下降子序列)
1674: 入侵与反击 时间限制: 1 Sec 内存限制: 128 MB提交: 229 解决: 28[提交][状态][讨论版] 题目描述 A国部署的反导系统遇到了一个致命BUG,那就是每一次发射的 ...