您的位置:首页 > 数据库

PL/SQL程序设计基础语法详解(一)

2017-03-25 19:53 971 查看
一.什么是PL/SQL(Procedure Language/SQL)

概念:PLSQL是Oracle对sql语言的过程化扩展

指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。

PL/SQL的结构:

declare
说明部分    (变量说明,光标申明,例外说明 〕
begin
语句序列   (DML语句〕…
exception
例外处理语句
End;


简单的PL/SQL程序

如果是在命令行中需要使用 set serveroutput on先打开显示

declare
--声明变量
begin
-- 程序执行的主体
dbms_output.put_line('Hello World'); --输出语句
end;


二.PL/SQL程序的基本语法

1.常量和变量



2.变量类型



3.引用型变量和记录型变量的使用

引用型变量的使用

-- 查询并打印7839的姓名和薪水
declare
-- 定义姓名和薪水的变量
pname emp.ename%type; --即引用emp表中ename列的类型
psal emp.sal%type;   --即引用emp表中sal列的类型

begin
-- 查询语句 赋值的两种方式 1.:=   2. into关键字
select ename,sal into pname,psal from emp where empno='7839';
dbms_output.put_line(pname ||'的薪水是'|| psal);

end;


记录型变量

-- 查询并打印7839的姓名和薪水
declare
-- 定义记录型变量,代表一行
dec_emp emp%rowtype; --即记录了emp表中一行的类型,使用的时候直接.调用
begin
-- 查询语句
select * into dec_emp from emp where empno='7839';
--使用的时候 dec_emp.sal   变量名.列名
dbms_output.put_line(dec_emp.ename ||'的薪水是'|| dec_emp.sal);
end;


3.if语句

三种格式:

格式一:
IF   条件  THEN 语句1;
语句2;
END IF;


格式二:
IF  条件  THEN  语句序列1;
ESLE   语句序列 2;
END   IF;


格式三(主要使用这种):
IF   条件  THEN 语句;
ELSIF  条件  THEN  语句;
ELSE    语句;
END  IF;


-- 判断用户键盘上输入的数字是几

-- 接收键盘的输入
-- num是地址值,在地址值上保存了输入的数字
accept num prompt '请输入一个数字';
declare
-- 定义变量保存数字
pnum number := #

begin
if pnum = 0 then dbms_output.put_line('您输入的数字是0');
elsif pnum = 1 then dbms_output.put_line('您输入的数字是1');
elsif pnum = 2 then dbms_output.put_line('您输入的数字是2');
else dbms_output.put_line('其他数字');
end if;
end;


4.循环语句

格式一:
WHILE   条件
LOOP
语句序列;
END  LOOP;
-----------------------------------------------
例如:
WHILE  total  <= 25000
LOOP
.. .
total : = total + salary;
END  LOOP;


格式二(主要使用这种,EXIT的地方容易理解):
Loop
EXIT [when   条件];
语句序列
End loop


格式三:
FOR   I   IN   1 . . 3
LOOP
语句序列 ;
END    LOOP ;


-- 打印1~10的数字
declare
pnum number := 1;
begin
loop
--循环
--退出条件
exit when pnum > 10;
dbms_output.put_line(pnum);
-- 加1
pnum := pnum + 1;
end loop;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: