1.PL/SQL 简介
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
PL/SQL 是对 SQL 的扩展
支持多种数据类型,可使用条件和循环等控制结构
可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑
与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性
支持 SQL,在 PL/SQL 中可以使用:
1.数据操纵命令
2.事务控制命令
3.游标控制
4.SQL 函数和 SQL 运算符
用户把PL/SQL块整个发送到服务器端,oracle服务器端编译、运行,再把结果返回给用户
可移植性,可运行在任何操作系统和平台上的Oralce 数据库
更佳的性能,PL/SQL 经过编译执行
安全性,可以通过存储过程限制用户对数据的访问
与 SQL 紧密集成,简化数据处理。
支持所有 SQL 数据类型
支持 NULL 值
支持 %TYPE 和 %ROWTYPE 属性类型
PL/SQL 块简介
PL/SQL 块是构成 PL/SQL 程序的基本单元
将逻辑上相关的声明和语句组合在一起
PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分
[DECLARE
declarations]
BEGIN
executable statements
[EXCEPTION
handlers]
END;
2.标识符
使用标识符来为PL/SQL程序中的常量、变量、游标等命名。
标识符可以由字母、数字、美元符号($)、下划线(_)和数字符号(#)组成。以字母开头
如果有其它特殊字符要使用双引号括起来
最长不超过30个英文字母的长度
3.数据类型
PL/SQL数据类型不但支持Oracle SQL中的数据类型,还有自身自带的数据类型。
(1)数值类型:
number(p,s):存放各种数字类型数据
pls_integer,binary_integer:数值类型,只能存放整数
(2)字符串类型:
varchar2(len):变长字符串类型,存放字符串类型数据
char(len):定长字符串类型
注:sql中的CHAR最大字节长度为2000字节,plsql中的CHAR最大字节长度为32767字节
sql中的VARCHAR2最大字节长度为4000字节,plsql中的VARCHAR2最大字节长度为32767字节
(3)日期类型:
date:日期类型
(4)%type类型
%type:它的类型是取数据库表中某一个字段的类型,作为变量类型
写法:
表名.列名%type; --完整的类型
emp.ename%type 等同于 varchar2(10)
(5)record类型
普通的数据类型声名的变量,只能存放一个值,记录类型是存放一组值
它使用前需要去定义一个确定类型
1>记录类型的定义:
type type_name is record(
变量名 数据类型,
变量名 数据类型,
变量名 数据类型
);
type_name:记录类型名称
type emp_type is record(
ename varchar2(10),
job emp.job%type,
sal emp.sal%type
);
2>声名一个记录类型变量
变量名 记录类型;
v_emp emp_type;
3>给记录类型赋值
变量名称.属性名
v_emp.ename:='张三';
(6)%rowtype类型
%rowtype:它是%type类型和record类型的结合
表名%rowtype
dept%rowtype
v_dept dept%rowtype;
4.变量和常量
变量:它是存储数据的,它里面存放的值是可以根据程序需要改变的。
变量的声名语法:
变量名 数据类型 [NOT NULL] [:=默认值];
注: := 在plsql中是赋值符号
declare
v_n number(10):=1;
begin
v_n:=10;
end;
常量:它存储数据,一旦给它赋值,它的值就不可改变
常量名 constant 数据类型 :=默认值;
注:
&:输入符号
select * from emp where deptno=&deptno;
select * from emp where ename='&name';
declare
--声名一个number类型变量
v_m number(10);
begin
--从键盘输入一个数字存入变量v_m中
v_m:=&请输入一个数字;
--把变量v_m的值输出在控制台上
dbms_output.put_line('v_m的值是:'||v_m);
end;