PL/SQL

一,简介
PL/SQL是Procedure Language & Structured Query Language的缩写。
可运行SQL语句,可定义变量,可执行逻辑。
可执行的SQL语句有INSERT,UPDATE,DELETE,SELECT INTO,COMMIT,ROLLBACK,SAVEPOINT。


二,基本语法
1,结构

DECLARE
  /*声明部分:声明变量,类型,游标,局部存储过程和函数*/
BEGIN
  /*执行部分:SQL语句,执行逻辑*/
EXCEPTION
  /*异常部分:异常处理*/
END;


2,变量
1>变量的声明和赋值

v_name 数据类型 [:= 初始值];


2>变量的命名规则

标识符命名规则例子
程序变量 V_nameV_name
程序常量 C_nameC_company_name
异常标识 E_nameE_too_many
SQL*Plus替代变量 P_nameP_sal
绑定变量 G_nameG_sal
游标变量Tablename_cursor Emp_cursor
表类型Tablename_record_type Emp_record_type
记录类型Name_record Emp_record



3>变量的数据类型
a>基本类型

 

类型子类说明范围ORACLE限制
NUMBER(p,s)Dec
Double
precision
Integer
Int
Numeric
Real
Small int
小数,NUMBER 的子类型
高精度实数
整数,NUMBER 的子类型
整数, NUMBER 的子类型
与NUMBER等价
与NUMBER等价
整数, 比 integer 小
  
BINARY_INTEGER 带符号整数,为整数计算优化性能  
CHARCharacter
String
Rowid
Nchar
定长字符串


民族语言字符集
0-32767
可选,确省=1
2000
VARCHAR2Varchar, String
NVARCHAR2
可变字符串
民族语言字符集
0-32767
4000
4000
LONG 变长字符串0->214748364732,767字节
DATE 日期型公元前4712年1月1日至
公元后4712年12月31日
 
BOOLEAN 布尔型TRUE,FALSE,NULL不使用
ROWID 存放数据库行号  
UROWID 通用行标识符,字符类型  

 

转换

TO_NUMBER()
TO_CHAR()
TO_DATE()


b>自定义类型
i>基本类型

TYPE record_type IS RECORD(
  name VARCHAR2(20), 
  address VARCHAR2(20)
);
rec record_type;

ii>列类型%TYPE

TYPE record_type IS RECORD(
  T_no emp.empno%TYPE,
  T_sal emp.sal%TYPE
); 
rec record_type;

iii>行类型%ROWTYPE

rec emp%ROWTYPE; 


3,运算符

符号意义
+加号
-减号
*乘号
/除号
:=赋值号
=>关系号
..范围运算符
||字符连接符
=等于
!=不等于
<小于
>大于
<=小于或等于
>=大于或等于
AND逻辑与
OR逻辑或
NOT取反
IS NULL是否空值
BETWEEN是否介于两者
IN是否在一列值中

 

4,控制语句
1>IF语句

IF <布尔表达式> THEN 
	PL/SQL 和 SQL语句; 
ELSIF <布尔表达式> THEN 
	PL/SQL 和 SQL语句;
ELSE 
	其它语句;
END IF;


2>CASE语句

CASE selector
	WHEN expression1 THEN result1
	WHEN expression2 THEN result2 
	[ELSE resultN+1]
END;


3>LOOP循环语句

LOOP 
	PL/SQL 和 SQL语句; 
	EXIT WHEN <布尔表达式>  /*条件满足,退出循环语句*/ 
END LOOP; 


4>WHILE循环语句

WHILE <布尔表达式> LOOP
	要执行的语句; 
END LOOP; 


5>FOR循环语句

FOR 循环计数器 IN [REVERSE] 下限..上限 LOOP
	要执行的语句; 
END LOOP;


6>GOTO语句

<<label>> 
GOTO label;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值