PL SQL概述
什么是PL/SQL?
PL/SQL(Procedural Language/SQL)。
一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展。
PL/SQL的特点
- 支持所有SQL的语法
- 支持case语句,方便地实现循环
- 通过继承,实现子类具有父类的属性和方法
- 设置了新的日期类型
PL/SQL的开发环境
- Oracle数据库服务器
- Oracle开发工具
PL/SQL的工作原理
- 由PL/SQL引擎接收指令
- 将指令传递给Oracle数据库服务器执行
语句块::重点部分
PL/SQL语句块
PL/SQL程序是按照块结构进行划分
块是PL/SQL程序的基本单位
Declare用于声明变量、游标
v_name varchar2(30):='Jack'; --定义用户名称
v_age number :=6; --定义用户年龄
Begin表示程序的开始
--将用户的姓名和年龄插入到club_user表中
insert into club_user values (v_name,v_age);
Exception表示异常
--当出现异常时的处理
when others then
DBMS_OUTPUT.PUT_LINE('插入数据失败');
End;表示程序结束
PL/SQL声明,命名规则
声明
- 使用declare关键字
- 用于定义变量或者常量
DECLARE(声明) variable_name(变量名称) [CONSTANT](是否为常量) type(变量的数据类型) [NOT NULL](是否为空) [:=value](变量初始化);
命名规则
变量命名规则:
- 变量名首字母必须是英文字母,其后可以是字母、数字或者特殊字符$、#和下划线
- 变量名长度不超过30个字符
- 变量名中不能有空格
表达式和运算符
表达式的分类
数值型 字符型 日期型 布尔型
运算符分类
算术运算符 关系运算符 逻辑运算符 其他运算符
流程控制
条件结构:IF…THEN
IF condition THEN
Statements1 (执行语句,例:插入语句,删除语句等)
ELSE
Statements2
END IF;
条件结构:IF-THEN-ELSIF
IF condition1 THEN
Statements
ELSIF condition2 THEN
Statements
ELSE
Statements
END IF;
CASE语句(在oracle 9i后引入)
CASE variable
WHEN value1 THEN statements1;
WHEN value2 THEN statements2;
....................
WHEN valuen THEN statementsn;
[ELSE else_stataments;]
END CASE;
循环结构
LOOP循环
WHILE-LOOP循环
类似于while循环
FOR-LOOP循环
类似于for循环
PL/SQL的异常处理
预定义异常
异常处理
常用的变量类型
binary_integer: 整数,主要用来计数而不是用来表示字段类型
number: 数字字符
char: 定长字符串
varchar2: 变长字符串
date: 日期
long: 长字符串 最长2GB
boolean: 布尔类型,可以取值true | false | null值