PLSQL编程入门
来源:互联网 发布:花店网络营销策划案 编辑:程序博客网 时间:2024/05/24 05:34
Procedure Language主要是oracle对语言能力的增加,让if语言有了条件判断,和for循环的处理能力,
语法 :主要分为俩部分,声明部分,逻辑部分
declare//这是声明部分 begin//这是逻辑部分end; //结束,
下面我们就来输出一句话, ‘hello word’
declarestr varchar2(20) := 'hello world' //声明一个字符串变量,并且赋值begindbms_output.put_line(str);end;
输出结果如下
学习玩输出语句后,我们做一个小练习
-- 输出7369的工资declare--声明一个变量str emp.sal%type; --类型的话,这样写类型就跟表中的sal类型一致了beginselect sal into str from emp where empno = 7369;dbms_output.put_line(str);end;
– 输出7369的部门和姓名
declarestr emp%rowtype; --这样写就相当于是一个对象类型beginselect * into str from emp where empno = 7369;dbms_output.put_line(str.empno||' '||str.ename);-- '||' 符号主要是用来拼接字符串的 end;
输出结果如下
if条件判断
语法 if 条件 than elsif 条件 than else
– 根据不同年龄输出信息
declare age number := &aaa; --这样写的意思相当是 scanner,值是用户输入的begin if age > 18 then dbms_output.put_ling('未成年人'); elsif age > 48 then dbms_output.put_line('中年人'); else dbms_output.put_line('长辈'); end if;end;
运行结果如下
输出结果如下, 想必大家猜到我输入的是什么了,永远十八岁,
三种循环
- while循环
- for循环
- loop循环
while循环演示
declarei number := 1;begin while i <= 10 loop dbms_output.out_line(i); i := i + 1; end loop;end;
运行结果如下
for循环
语法
for 变量名 in 起始值..结束值 loop end loop;
使用for我们不用声明变量,因为底层会帮我们声明
declarebegin for i in 1..10 loop dbms_output.put_line(i); end loop;end;
运行结果如下
loop循环
语法 loop 输出语句 --根据条件来退出循环 exit when 条件 end loop;
代码演示
declare n number := 1;begin loop dbms_output.put_line('pipixia :'||n); exit when n>10; n := n+1; end loop;end;
输出结果 如下
游标
相当是对结果集的封装, 相当于是jdbc中的ResultSet
语法:
声明 游标
cursor 游标名 is 查询语句
cursor 游标名(参数名 参数类型) is 查询语句 where empno=参数名
demo
declare--声明游标cursor demo is select * from emp;--声明变量 vrow emp%rowtype;begin --打开游标 open demo; loop fetch demo into vrow; exit when demo%notfound; dbms_output.put_line(vrow.ename); end loop; --关闭游标 close demo;end;
查询结果如下
需求
– 输出指定部门的员工信息
declare--声明游标cursor demo(v_deptno number ) is select * from emp where deptno = v_deptno; --声明常量v_row emp%rowtype;begin --开启角标 open demo(10); --开启循环 loop --移动角标 fetch demo into v_row; --如果没有查询到,就退出循环 exit when demo%notfound; --输出打印 dbms_output.put_line(v_row.ename); end loop; --循环末尾 --关闭角标 close demo;end;
输出结果如下
游标练习
– 按照职位涨工资,总裁涨1000 , 经理涨800 , 其他人涨400
/*
遍历所有员工,如果是总裁,涨1000;
如果是经理 涨800
群众涨400
*/
declare--声明游标 cursor demo is select * from emp;--声明常量v_row emp%rowtype;begin --开启游标 open demo; loop --移动角标 fetch demo into v_row; --如果没有发现就退出循环 exit when demo%notfound; --如果工作是 涨800 if v_row.job = 'MANAGER' then update emp set sal = sal + 800 where empno = v_row.empno; --如果工作是boss 涨1000 elsif v_row.job = 'PRESIDENT' then update emp set sal = sal + 800 where empno = v_row.empno; else --涨400 update emp set sal = sal + 400 where empno = v_row.empno; end if; end loop; --关闭游标 close demo; --提交事务 commit;end;
扩展: 使用for循环遍历游标
declare --声明游标 cursor demo is select * from emp;begin --遍历游标 for v_row in demo loop; dbms_output.put_line(v_row.ename);end loop;
以上就是一些简单的知识,多敲敲就会了,,每个语言刚开始都是痛苦的,,,
阅读全文
0 0
- plsql 编程入门基础
- PLSQL编程入门
- PLSQL入门
- plsql入门
- plsql编程
- plsql编程
- PLSQL编程
- PLSQL编程
- Oracle编程入门经典 第10章 PLSQL
- PLSQL编程2:PLSQL变量
- PLSQL入门第一章
- oracle之PLSQL入门
- plsql快速入门
- ORcale PLSQL编程
- PLSQL编程、游标、异常
- plsql oracle 编程
- plsql编程语法
- oracle plsql 编程
- python 流程控制语句结构汇总
- Matlab使用各种tips
- WebIDE生成的代码模板分析
- Mtbatis关系-一对多关系
- SpringMVC @RequestBody Date类型的Json转换
- PLSQL编程入门
- could not open `C:\Program Files (x86)\Java\jdk1.8.0_144\jre\lib\i386\jvm.cfg
- HTML5 移动端 适配问题
- Unity调用Object-c,XUPorter的使用
- java基础系列(一)
- 前台向后台传中文数据出现乱码
- Steamroller
- 布局
- 版本术语