一. SQL ~ PL/SQL
SQL(Structure Query Language)结构化查询语言,一种数据库语言。它是非过程化的语言,程序员只要说明执行什么工作,至于如何执行则有服务器来做。(这个好像已经是废话了,大家都知道的,只是为了做下对比。)
PL/SQL(Procedural Language/Structured Query Language)过程语言/结构化查询语言,是ANSI标准SQL的Oracle版本过程化语言的扩展。与SQL语言相反,PL/SQL语言像第三代(3GL)过程话语言一样,要求一步一步指导来确定下一步做什么。PL/SQL提供变量声明,赋值,条件测试与分支以及迭代的语言元素。
二. PL/SQL小知识点
注:这里的赋值符号为“ := ”,而不是“=”
2.连接符号 ||
注:不同于SQL中的连接符“+”
3. PL/SQL程序块结构
一个未命名的PL/SQL块含有3个部分:可选的块声明、块体部分和可选的异常处理部分。
DECLARE
--块声明部分
...
BEGIN
--块体的可执行部分
...
EXCEPTION
--异常处理部分
...
END;
4. 运行的语句要以“;”来结束;
三.对于需要返回结果集的处理
例如:查询学号为2号的学生姓名
...
select StuName into A from Student where StuNo='2';
...
(将查询的记过放到A中)
2.游标
PL/SQL用游标来管理SQL的SELECT语句。游标是为处理这些语句而分配的一大块内存。因为在Oracle里面没有一个类型去接受 一个结果集.这个时候我们可以声明游标对象去接受。
注意:在Oracle中,不需要显示销毁游标.因为在Oracle中,很多东西是由JAVA写的,Oracle会自动销毁游标。
--创建游标sel_Students来进行查询student表的信息
declare cursor sel_Students is select sno,sname,sage,ssex from student;
c_sno student.sno%type;
c_sname student.sname%type;
c_sage student.sage%type;
c_ssex student.ssex%type;
begin
dbms_output.enable;
open sel_Students;
dbms_output.put_line('数据为:');
loop
fetch sel_Students into c_sno,c_sname,c_sage,c_ssex;
exit when sel_Students%NOTFOUND;
if sel_Students%FOUND then
dbms_output.put_line(c_sno||' '||c_sname||' '||c_sage||' '||c_ssёx);
end if;
end loop;
close sel_Students;
end;
/
结果显示:
数据为:
1 王婷 20 女
2 李伟 22 男
如果结果无法显示,执行:
SQL>set serveroutput on
四. 小结
以上为个人学习的一点收集,可能有不够正确的地方,还忘跟帖更正。