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

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

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

控制语句—条件
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

你可能感兴趣的:(java,数据结构,sql,C++,c)