什么是PL/SQL
一种过程化的语言,通过增加编程语言的特点,实现对SQL的扩展
PL/SQL的特点:
1、支持所有SQL的语法
2、支持case语句,方便了实现循环
3、通过继承,实现子类具有父类的属性和方法
4、设置了新的日期类型
声明:
使用declare关键字
用于定义变量或者常量
declare demo varchar2(200) :='abc';
命名规则:
变量命名规则:
变量名首字母必须是英文字母,其后可以是英文字母、数字或者特殊字符$、#和下划线
变量长度不能出现30个字符且不能有空格
表达式和运算符:
表达式的分类
数值型
字符型
日期型
布尔型
布尔型
运算符分类
算术运算符
关系运算符
逻辑运算符
其他运算符
流程控制:
set serveroutput on;
declare a number :=4;
b number :=6;
begin
if a+b>5 then
dbms_output.put_line(a||'加'|| b||'大于5');
else
dbms_output.put_line(a||'加'||b||'小于等于5');
end if;
end ;
declare num1 number:=30;
num2 number:=30;
begin
if num1+num2>50 then
dbms_output.put_line(num1||'加'||num2||'大于50');
elsif num1+num2=50 then
dbms_output.put_line(num1||'加'||num2||'等于50');
else
dbms_output.put_line(num1||'加'||num2||'小于50');
end if;
end ;
set serveroutput on;
declare d_no number:=8;
d_name varchar2(20);
BEGIN
case d_no
when 1 then d_name:='农夫山泉';
when 2 then d_name:='怡宝';
when 3 then d_name:='百岁山';
when 4 then d_name:='娃哈哈';
when 5 then d_name:='康师傅';
when 6 then d_name:='恒大冰泉';
when 7 then d_name:='蝴蝶泉';
else d_name:='自来水';
end case;
dbms_output.put_line('你选择的是'||d_name);
end ;
循环语句:
set serveroutput on;
declare num number :=1;
begin
loop
if num<=10 then
dbms_output.put_line(num);
num:=num+1;
else
exit;
end if;
end loop;
end;
set serveroutput on;
declare count_ number:=1;
begin
--使用while loop循环
--while条件
while count_<=10
loop
dbms_output.put_line(count_);
count_:=count_+1;
end loop;
end;
set serveroutput on;
declare count_ number;
begin
--reverse实现倒序
for count_ in REVERSE 1..10
loop
dbms_output.put_line(count_);
end loop;
end;
PL常用的变量类型:
1、binary_integer:整数,主要用来计数而不是来表示字段类型
2、number:数字字符
3、char:定长字符串
4、varchar2:变长字符串
5、date:日期
6、long:长字符串,最长2GB
7、boolean:布尔类型,可以取值true|false和null值
异常:
异常:
set serveroutput on;
declare n number :=5;
o VARCHAR2(200);
begin
case n
when 1 then o:='1';
when 2 then o:='2';
end case;
exception
when case_not_found then dbms_output.put_line('没有匹配的条件');
end ;