笔记FIVE
pl/sql
1、pl/sql是对sql语言的拓展,在之前所学sql的基础上添加了一些编程语言的特性。所以它是把数据操作和查询语句组织在过程化单元里面,通过逻辑判断、循环等实现复杂功能或者计算。
例子:对员工表涨工资
通过每个人的身份证号知道每个人的生日
2、pl/sql可以更高效、更方便地操作数据库,功能更加强大。
后面的触发器、过程、函数要以pl/sql为基础。
3、declare——说明部分(定义变量)
(如果没有说明部分,可以不用写这个部分)
begin——执行部分
end;
/
案例一:通过pl/sql输出helloworld
begin
dbms_output.put_line('HelloWorld');
end;
/
变量定义:
基本变量 char varchar2 date number boolean long
java:int a=10;
pl/sql: psal number:=1000;
pb boolean;
案例:使用基本数据类型
declace
pename varchar2(20);
pnumber number;
pdate date;
begin
pname:='李四';
pnumber:=1000;
pdate:=sysdate;
dbms_output.put_line(pname||' '||pnumber);
dbms_output.put_line('系统当前时间是'||pdate);
dbms_output.put_line(pdate+1);
end;
/
引用型变量
pname briup_emp.ename%type;
将ename的数据类型复制给pname
案例:查询员工表中编号为1的员工姓名和工资。
declare
pname briup_emp.ename%type;
psal briup_emp.sal%type;
begin
select ename,sal into pname,psal from briup_emp where empno=1;
dbms_output.put_line(pname||'的工资是'||psal);
end;
/
记录型变量 举例:emp_res briup_emp%rowtype;(有多项)
查询员工表中编号为1的员工的所有信息。
declare
emp_res briup_emp%rowtype;
begin
select * into emp_res from briup_emp where empno=1;
dbms_output.put_line('编号为'||emp_res.empno||'的'||emp_res.ename||'工资是'||emp_res.sal||'工种是'||emp_res.job);
end;
/
if else语句
if 条件 then 执行语句;
end if
if a>10 then dbms_output.put_line('helloworld');
elsif 条件2 then 执行语句;
else 执行语句;
end if;
让用户通过键盘录入数据。
accept num prompt('请输入一个数字');
declare
pnumber number:=#
begin
if pnumber=1 then dbms_output.put_line('输入的数字是1');
elsif pnumber=2 then dbms_output.put_line('输入的数字是2');
else dbms_output.put_line('输入的是其他数字');
end if;
end;
/