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