if-else运用

declare
v_num number(8);
begin
v_num :=&n;
if v_num>0 and v_num<100 then
dbms_output.put_line('工薪阶级');
elsif v_num between 100 and 200 then
dbms_output.put_line('中产阶级');
else
dbms_output.put_line('资本家');
end if;
end;

case运用

declare
v_num number(8) :=&n;
v_result varchar2(15);
begin
case
when v_num =1 then v_result :='剪刀';
when v_num =2 then v_result :='石头';
when v_num =3 then v_result :='布';
else
v_result :='输入的数字无效';
end case;
dbms_output.put_line(v_result);
end;

--案例:1-10输出(loop循环实现)

declare
i number(8) :=1;
begin
loop
dbms_output.put_line(i);
exit when i =10;
--改变初始值
i := i+1;
end loop;
end;
/

--while循环实现上面例子

declare
i number(8) :=1;
begin
while i<=10 loop
dbms_output.put_line(i);
--改变初始值
i := i+1;
end loop;
end;
/

--for循环输出1-10

结构特点

for i in() loop
end loop;
declare
--i number(8) :=&n;
begin
for i in 1..10 loop --初始值..结束值
dbms_output.put_line();
end loop;
end;
/

for循环反向输出 10-1

declare
--i number(8) :=&n;
begin
for i in resever 1..10 loop --初始值..结束值
dbms_output.put_line(i);
end loop;
end;
/
declare
v_a number(8);
begin
v_a :=1;
if v_a= 1 then
dbms_output.put
declare
num number(8) :=&n;
result number(8);
--f(n) number(8);
begin
case
when num=1 then result :=1;
when num=2 then result =result

作业if-else 结构

1、输入员工的编号,判断此员工的工资:

-如果工资sal<1000则让工资在原来在基础上加上100

-如果工资1000<= sal <2000则让工资在原来在基础上加上200

-否则让员工工资在原来的基础上加上300;

declare
v_empno number(30) :=&n;
v_sal number(30);
begin
select sal into v_sal from emp where empno=v_empno;
if v_sal<1000 then v_sal :=v_sal +100;
elsif v_sal between 1000 and 2000 then v_sal:=v_sal+200;
else
v_sal :=v_sal+300;
end if;
dbms_output.put_line(v_sal);
end;
/

2.编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。(使用if)

declare
v_ename varchar2(30) :=&n;
v_sal number(30);
begin
select sal into v_sal from emp where ename=v_ename;
if v_sal<2000 then v_sal :=v_sal+(v_sal*0.1);
end if;
dbms_output.put_line(v_sal);
end;
/

3.编写一个过程,可以输入一个雇员名,如果该雇员的补助不是0 就在原来的基础上增加100;如果补助为0 就把补助设为200;(使用if...else)

declare
v_ename varchar2(20) :=&n;
--v_money number(30);
v_nvl number(20);
begin
select nvl(comm,0) into v_nvl from emp where ename=v_ename;
if(v_nvl =0) then v_nvl :=v_nvl+200;
else v_nvl := v_nvl+100;
end if;
dbms_output.put_line(v_nvl);
end;
/

--4、编写一个过程,可以输入一个雇员编号,如果该雇员的职位是PRESIDENT就给他的工资增加1000,

--如果该雇员的职位是MANAGER 就给他的工资增加500,其它职位的雇员工资增加200。(使用if..elsif..else)

declare
v_empno number(32) :=&n;
v_job varchar2(20);
v_sal number(20);
begin
select job,sal into v_job,v_sal from emp where empno=v_empno;
if(v_job ='PRESIDENT') then v_sal :=v_sal+1000;
elsif (v_job = 'MANAGER') then v_sal :=v_sal+500;
else v_sal :=v_sal+200;
end if;
dbms_output.put_line(v_sal);
end;
/

作业循环结构

1、循环输出“haha1...haha10”(使用while)

declare
i number(5) :=1;
begin
while i<10 loop
dbms_output.put_line('haha' || i);
i :=i+1;
end loop;
end;
/

2、把上述示例改为loop实现

declare
i number(5) :=1;
begin
loop
dbms_output.put_line('haha' || i);
exit when i =10;
i :=i+1;
end loop;
end;
/

3、现有一张表users,字段(uid,uname),分别使用(loop、while、for完成)。

请编写一个过程,可以输入用户名,并循环添加10 个用户到users 表中,用户编号从1 开始增加。

create table users
(
userid number(8),
uname varchar2(20)
); declare
v_id number(8):=1;
v_name varchar2(20);
begin
while v_id<=3 loop
v_name:='&name';
insert into users values(v_id,v_name);
v_id:=v_id+1;
end loop;
end;
/

4、打印九九乘法表

这个还要修改

declare
v_result number(20);
--i number(20) :=1;
begin
for i in 1..9 loop;
for j in 1..9 loop;
v_result :=i*j;
if length(i*j)=1 and j!=1 then
dbms_output.put_line(' ');
end if;
dbms_output.put_line(i || '*'||j ||'='||v_result);
dbms_output.put_line(' ');
end loop;
end;

这是对的

declare
begin
for i in 1..9 loop
for j in 1..i loop
dbms_output.put(i);
dbms_output.put('*');
dbms_output.put(j);
dbms_output.put('=');
if length(i*j)=1 and j!=1 then
dbms_output.put(' ');
end if;
dbms_output.put(i*j);
dbms_output.put(' ');
end loop;
dbms_output.put_line(' ');
end loop;
end;

2018.5.27 OraclePLSQL编程 if-else练习和循环结构练习的更多相关文章

  1. Bash脚本编程学习笔记07:循环结构体

    本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...

  2. 2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)

    传送门 简单概率dp. 显然每次转移的式子可以用一个矩阵表示出来: 这个是循环矩阵. 因此只用维护第一行快速幂一波就行了. 代码: #include<bits/stdc++.h> #def ...

  3. Oracle基础 PL-SQL编程基础(3) 循环结构

    循环结构: 1. LOOP循环结构 语法: LOOP 要执行的语句; EXIT WHEN <条件>   --条件满足则退出循环 END LOOP; 示例:循环输出1-10的整数 DECLA ...

  4. C++编程学习(七) 循环结构

    1.continue:循环体中结束本次循环,直接进入下一次循环. 2.break:循环直接结束. 3.在for语句循环体中执行continue语句,程序会转到“表达式3”继续运行. 4.使用多重循环的 ...

  5. 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】

    --------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...

  6. Python编程基础:循环结构

    一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...

  7. Python编程基础[条件语句if 循环语句 for,while](二)

    ython条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: if 判断条件: 执行语句……else: 执行语句…… x= ...

  8. 网易2018.03.27算法岗,三道编程题100%样例AC题解

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8660814.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. 2018/03/27 每日一个Linux命令 之 cron

    Cron 用于配置定时任务. -- 环境为 Ubuntu16-04 -- 先说说怎么配置一个简单的定时任务.直观的可以看到效果. 之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路 ...

随机推荐

  1. Spark内核概述

    提交Spark程序的机器一般一定和Spark集群在同样的网络环境中(Driver频繁和Executors通信),且其配置和普通的Worker一致 1. Driver: 具有main方法的,初始化 Sp ...

  2. 洛谷P1033 自由落体

    P1033 自由落体 题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公 ...

  3. DNS 网关 路由 交换机 网桥 协议 服务器 这些都是什么关系?

    来源:知乎 服务器:为你提供服务的机器.相当于马路边上的各种店面.虽然理论上任何一户人家都能开店为你提供服务,但是因为各种硬件资源限制而不适合开店.比如:小区道路比较窄(宽带带宽比较窄).家里地方太小 ...

  4. Git Reference

    Installing and upgrading Git https://confluence.atlassian.com/bitbucketserver056/installing-and-upgr ...

  5. nexus私服的搭建和使用

  6. tomcat memecached session 共享同步问题的解决

    事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7 w ...

  7. 修改Gradle本地仓库

    问题描述 Gradle 默认的本地仓库为 C:\Users\用户名\.gradle,不想让其一直下载东西占用 C 盘资源. 解决方法 新建环境变量名:GRADLE_USER_HOME,变量值为:D:\ ...

  8. P2375 [NOI2014]动物园 KMP

    好,暴力能拿$50pts\space qwq$ 暴力的思路就是一直跳$nxt[j]$,直到它的长度小于串的一半,然后开始计数,当然要接着跳$nxt[j]$ 正解:考虑没有长度要求的(不要求不重合)公共 ...

  9. 牛客假日团队赛1 G.Superbull

    链接: https://ac.nowcoder.com/acm/contest/918/G 题意: Bessie and her friends are playing hoofball in the ...

  10. adb 调系统时间

    1.修改前提 获取系统root权限,然后adb shell进入shell界面 adb shell su 2.时区设置 cat /data/property/persist.sys.timezone / ...