PL/SQL 概述与流程控制语句

[b]SQL:[/b] 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。
[b]PL/SQL[/b](Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。PL/SQL区段只被编译一次并且以可运行的形式储存,以降低响应时间。

[b]SQL语句、PL/SQL块与SQL*Plus命令的区别[/b]
SQL语句是以数据库对象为操作对象的语言,主要包括数据定义语言DDL,数据操纵语言DML,数据控制语言DCL和数据存储语言DSL等。当输入SQL语句后,SQL*Plus将其保存在内部缓冲区中,当SQL命令输入完毕后,可以通过在命令行的末尾输入分号“;”并按回车结束,或者在单独一行上用斜杠“/”或空行表示结束。
PL/SQL块同样是以数据库对象为操作对象,但由于SQL本身不具备过程控制功能,所以为了能够与其他语言一样具备过程控制的处理功能,在SQL中加入诸如循环和选择等面向过程的处理功能,由此形成了PL/SQL。所有PL/SQL语句的解释均由PL/SQL引擎来完成,使用PL/SQL块可编写过程,触发器和包等数据库永久对象。
SQL*Plus命令主要用来格式化查询结果,设置选择,编辑以及存储SQL命令,设置查询结果的显示格式,并且可以设置环境选项。可以编辑交互语句,可以与数据库进行“对话”。
[size=large][b]一 . PL/SQL块[/b][/size]
[b]控制语句—循环[/b]
1.
while (no<=90 ) loop
insert into depart(depno) values(no);
no:=no=10;
end loop;

2.
loop
.....
exit when eno=100;
.....
end loop;

3.
for num in 1..10 lopp
dbms_output.putline('');
end loop;

[b]控制语句—条件[/b]
1.
if  condition then...
end if;

2.
if condition  then  ...
esle if condition then...
else ....
end if;

3. goto语句;
DECLARE 
eno emp.empno%TYPE ;
sal emp.sal%TYPE ;
BEGIN
eno := &en ;
SELECT sal INTO sal FROM emp WHERE empno=eno ;
IF sal>3500 THEN goto po1 ;
ELSE IF sal>2000 THEN goto po2 ;
ELSE goto po3 ;
END IF ;
<<po1>> DBMS_OUTPUT.put_line('高工资。。。') ;
<<po2>> DBMS_OUTPUT.put_line('中等工资。。') ;
<<po3>> DBMS_OUTPUT.put_line('底工资。。。') ;
END ;

4. case-when
CASE有两种表达式:
a.
select u.id, u.realname, U.SEX,
( case u.sex
when 1 then '男'
when 2 then '女'
else '空的'
END
) 性别
from users u;

b.

CASE
  WHEN condition1 THEN result1
  WHEN condistion2 THEN result2
  WHEN condistionN THEN resultN
  ELSE default_result
END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值