PL/SQL是是由甲骨文公司在90年代初开发,以提高SQL的功能。作用是让sql语句具有程序的特性,以及面向对象的特性
1.语法:
declare //固定语法部分,单词意思为“声明”,意思为“声明头部”
xxx xxx /*声明体。用于声明变量,变量类型分为普通变量声明、引用变量声明、
xxx xxx 记录变量声明、以及光标的声明*/
begin //固定语法部分,意思为“开始标签”
xxx xxx xxx xxx /*执行体。pl/sql的代码执行体
xxx xxx xxx xxx 用于循环、输出、循环遍历光标
xxx xxx xxx xxx 逻辑运算等,和普通类似*/
end; //固定语法部分,意思为“结束标签”
例子:(以java语言的语法进行理解)
declare //固定语法部分
name nvarchar2(3); //声明一个基本类型name变量,类型为nvarchar2,与java不同的是先声明变量名,后指定类型
age number(3,0); //声明一个基本类型age变量,类型为number
begin //固定语法部分
name := '大明'; //对变量赋值,与java不同的是赋值是用’ := ‘
age := 22; //同上
dbms_output.put_line('名字:'||name||'年龄:'||age); //进行输出dbms_output.put_line()可以理解为System.out.println(),只不过用'||'表示java中的字符串连接
end; //固定语法部分
输出结果——名字:大明年龄:22
2.上面是声明基本型变量,下面是引用型变量
语法:
首先先创建一个表,用于举例create table student (id number(4,0) primary key, name nvarchar2(3,0), age number(3,0));
插入一条数据 insert into student (1, '大明', 22);
declare
s_name student.name%type; //声明引用类型s_name,引用student表中的name字段,可以理解为变量s_name和字段name为同一个类型
s_age student.age%type; //同上
begin
select name, age into s_name, s_age from student where id = 1; //将查询结果赋值给s_name和s_age,关键字’into‘带有赋值的意思
dbms_output.put_line('名字:'||s_name||'年龄:'||s_age); //输出
end;
输出结果——名字:大明年龄:22
3.记录型变量可以理解为一个对象,这个对象是用来描述表中的一行中的所有字段,而不是单个字段,用上面的student表举例
语法:
declare
one_student student%rowtype; \\声明一个记录型变量one_student,可以理解为one_student的类型是用来描述表中的一整条数据
begin
select * into one_student from student where id = 1; //将查询到的一条结果赋值给one_student
dbms_output.put_line('名字:'||one_student.name||'年龄:'||one_student.age); //输出,类似java中的对象.变量名的形式输出
end;
输出结果——名字:大明年龄:22