什么是PL/SQL
2023-07-06
结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单的调用相应语句来直接取得结果即可。
例:delete from students where major=‘Nutrition’;
然而,对于有些复杂的业务流程又要求相应的程序来描述,那么4GL就有些无能为力了。
PL/SQL通过增加了用在其它过程性语言中的结构来对SQL进行了扩展,使得它不仅仅是一个数据库查询语言,而且也是一个编程语言。
PL/SQL代表面向过程化的语言与SQL语言的结合,在编写PL/SQL代码时可以在SQL语句中使用:
(1)变量和类型
(2)控制语句
(3)过程和函数
(4)对象类型和方法
PL/SQL语言实现了将过程结构与Oracle SQL的无缝集成
例:修改一个学生的专业,如果没有该学生,就插入一个新的记录
–3gl_4gl.sql
DECLARE
v_newmajor VARCHAR2(10):=‘History’;
v_firstname VARCHAR2(10):=‘Scott’;
v_lastname VARCHAR2(10):=‘Urman’;
BEGIN
update students
set major=v_newmajor
where first_name=v_last_name and last_name=v_last_name;
If SQL%notfound then
insert into students(ID,FIRST_NAME,LAST_NAME,MAJOR) VALUES (student_sequence.NEXTVAL,v_firstname,
v_lastname,v_newmajor);
End if;
End;