PLSQL经典教程ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
据进行快速高效的处理。
➢ 任何客户/服务器工具都能访问PL/SQL程序,具有很好的
可重用性。
➢ 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序
的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的 能力。
➢ 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在
网络环境下这就意味着每一个独立的调用都必须被oracle服务器 处理,这就占用大量的服务器时间,同时导致网络拥挤。而 PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。
练习1:创建一个图书记录类型(书号,书名),显示结果为: 书号:1100 书名:VB.Net
练习2:显示7788号员工的员工号,姓名,工资
1-13
PL/SQL中的复合类型
%TYPE:定义一个变量,其数据类型与已经定义的某个数据变量的 类型相同,或者与数据库表的某个列的数据类型相同 ,这时可以 使用%TYPE 例:DECLARE
PL/SQL 程序设计简介
1-1
什么是PL/SQL
➢ PL/SQL是 Procedure Language & Structured
Query Language(过程化SQL语言) 的缩写
➢ PL/SQL是对SQL语言存储过程语言的扩展
1-2
PL/SQL的优点
➢ 它最大的优点是提供了一种服务器端存储过程语言 ,可以对数
EXCEPTION
/* 执行异常部分: 错误处理 */
END;
其中 执行部分是必须的。
1-5
PL/SQL块结构和组成元素
PL/SQL块可以分成三类:
➢ 匿名块:动态构造,只能执行一次 ➢ 子程序:存储在数据库中的存储过程、函数及包等。当
在数据库上建立好后可以在其它程序中调用它们
➢ 触发器:当数据库发生操作时,会触发一些事件,从而
LONG DATE BOOLEAN ROWID
说明 定长字符串,长度可选,缺省1。最大可达2000字节 可变字符串,长度不能缺省,最大可达4000字节 带符号整数,为整数计算优化性能 数值,p代表刻度,s代表精度 变长字符串 日期 布尔 存放数据库行号
1-10
PL/SQL中声明变量
在语句块的声明部分对变量声明,声明一个变量的语法是:
例: DECLARE Ename varchar2(20) :=’KING’; BEGIN DELETE FROM emp WHERE ename=ename; END;
1-8
PL/SQL中的标识符
下面是建议使用的变量命名方法
标识符 程序变量 程序常量 游标变量 异常标识
表类型 表
记录类型 参数
命名原则 V_name C_constant Name_cursor E_name Name_table_type Name_table Name_type P_name
PL/SQL中的复合类型
记录类型 :记录类型是把逻辑相关的数据作为一个单元存储起来
定义记录类型语法如下:
TYPE record_type IS RECORD( Field1 type1 [NOT NULL] [:= exp1 ], Field2 type2 [NOT NULL] [:= exp2 ], ... ... Fieldn typen [NOT NULL] [:= expn ] ) ;
variable_name [ constant ] type [ not null ] [:=value]
其中:
variable_name 为变量名
type
为类型
value
为变量的初值
1-11
PL/SQL中声明变量
例:
DECLARE
V_Description
VARCHAR2(50);
V_Number
1-3
PL/SQL块结构和组成元素
PL/SQL块
PL/SQL程序由三个块组成,即声明部分、执行部分、 异常处理部分。
1-4
PL/SQL块结构和组成元素
PL/SQL块的结构如下:
DECLARE
/* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以 及局部的存储过程和函数 */
BEGIN
/* 执行部分: 过程及SQL 语句 , 即程序的主要部分 */
-- 用 %TYPE 类型定义与表相配的字段 TYPE t_Record IS RECORD(
T_no emp.empno%TYPE, T_name emp.ename%TYPE, T_sal emp.sal%TYPE ); -- 声明接收数据的变量 v_emp t_Record;
1-14百度文库
PL/SQL中的复合类型
练习:给’KING’的工资涨10%
例 V_id C_student_name Emp_cursor E_too_many_rows Emp_record_type Emp Emp_record P_id
1-9
PL/SQL中的变量类型
类型 CHAR(n) VARCHAR2(n) BINARY_INTEGER NUMBER(p,s)
NUMBER := 45;
V_Counter
BINARY_INTEGER := 0;
注意:如果变量在声明时使用了NOT NULL选项则必须为变量指定初值。
如果变量在声明时使用了CONSTANT选项则必须为变量指定初值, 并且该初值不能被改变。
练习:查询员工号为7788的员工姓名,并显示在控制台。
1-12
自动执行相应的程序
1-6
PL/SQL中的标识符
PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同
➢ 标识符名不能超过30字符 ➢ 第一个字符必须为字母 ➢ 不能用’-‘(减号) ➢ 不分大小写 ➢ 不能是SQL保留字
1-7
PL/SQL中的标识符
一般不要把变量名声明与表中字段名完全一样,如果这样可能 得到不正确的结果
%ROWTYPE:返回一个记录类型, 其数据类型和数据库表的数据结构相 一致。
例:DECLARE
v_empno emp.empno%TYPE :=&no; rec emp%ROWTYPE; BEGIN SELECT * INTO rec FROM emp WHERE empno=v_empno; DBMS_OUTPUT.PUT_LINE('姓名:'||rec.ename||'工资 :'||rec.sal||'工作时间:'||rec.hiredate); END;
➢ 任何客户/服务器工具都能访问PL/SQL程序,具有很好的
可重用性。
➢ 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序
的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的 能力。
➢ 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在
网络环境下这就意味着每一个独立的调用都必须被oracle服务器 处理,这就占用大量的服务器时间,同时导致网络拥挤。而 PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。
练习1:创建一个图书记录类型(书号,书名),显示结果为: 书号:1100 书名:VB.Net
练习2:显示7788号员工的员工号,姓名,工资
1-13
PL/SQL中的复合类型
%TYPE:定义一个变量,其数据类型与已经定义的某个数据变量的 类型相同,或者与数据库表的某个列的数据类型相同 ,这时可以 使用%TYPE 例:DECLARE
PL/SQL 程序设计简介
1-1
什么是PL/SQL
➢ PL/SQL是 Procedure Language & Structured
Query Language(过程化SQL语言) 的缩写
➢ PL/SQL是对SQL语言存储过程语言的扩展
1-2
PL/SQL的优点
➢ 它最大的优点是提供了一种服务器端存储过程语言 ,可以对数
EXCEPTION
/* 执行异常部分: 错误处理 */
END;
其中 执行部分是必须的。
1-5
PL/SQL块结构和组成元素
PL/SQL块可以分成三类:
➢ 匿名块:动态构造,只能执行一次 ➢ 子程序:存储在数据库中的存储过程、函数及包等。当
在数据库上建立好后可以在其它程序中调用它们
➢ 触发器:当数据库发生操作时,会触发一些事件,从而
LONG DATE BOOLEAN ROWID
说明 定长字符串,长度可选,缺省1。最大可达2000字节 可变字符串,长度不能缺省,最大可达4000字节 带符号整数,为整数计算优化性能 数值,p代表刻度,s代表精度 变长字符串 日期 布尔 存放数据库行号
1-10
PL/SQL中声明变量
在语句块的声明部分对变量声明,声明一个变量的语法是:
例: DECLARE Ename varchar2(20) :=’KING’; BEGIN DELETE FROM emp WHERE ename=ename; END;
1-8
PL/SQL中的标识符
下面是建议使用的变量命名方法
标识符 程序变量 程序常量 游标变量 异常标识
表类型 表
记录类型 参数
命名原则 V_name C_constant Name_cursor E_name Name_table_type Name_table Name_type P_name
PL/SQL中的复合类型
记录类型 :记录类型是把逻辑相关的数据作为一个单元存储起来
定义记录类型语法如下:
TYPE record_type IS RECORD( Field1 type1 [NOT NULL] [:= exp1 ], Field2 type2 [NOT NULL] [:= exp2 ], ... ... Fieldn typen [NOT NULL] [:= expn ] ) ;
variable_name [ constant ] type [ not null ] [:=value]
其中:
variable_name 为变量名
type
为类型
value
为变量的初值
1-11
PL/SQL中声明变量
例:
DECLARE
V_Description
VARCHAR2(50);
V_Number
1-3
PL/SQL块结构和组成元素
PL/SQL块
PL/SQL程序由三个块组成,即声明部分、执行部分、 异常处理部分。
1-4
PL/SQL块结构和组成元素
PL/SQL块的结构如下:
DECLARE
/* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以 及局部的存储过程和函数 */
BEGIN
/* 执行部分: 过程及SQL 语句 , 即程序的主要部分 */
-- 用 %TYPE 类型定义与表相配的字段 TYPE t_Record IS RECORD(
T_no emp.empno%TYPE, T_name emp.ename%TYPE, T_sal emp.sal%TYPE ); -- 声明接收数据的变量 v_emp t_Record;
1-14百度文库
PL/SQL中的复合类型
练习:给’KING’的工资涨10%
例 V_id C_student_name Emp_cursor E_too_many_rows Emp_record_type Emp Emp_record P_id
1-9
PL/SQL中的变量类型
类型 CHAR(n) VARCHAR2(n) BINARY_INTEGER NUMBER(p,s)
NUMBER := 45;
V_Counter
BINARY_INTEGER := 0;
注意:如果变量在声明时使用了NOT NULL选项则必须为变量指定初值。
如果变量在声明时使用了CONSTANT选项则必须为变量指定初值, 并且该初值不能被改变。
练习:查询员工号为7788的员工姓名,并显示在控制台。
1-12
自动执行相应的程序
1-6
PL/SQL中的标识符
PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同
➢ 标识符名不能超过30字符 ➢ 第一个字符必须为字母 ➢ 不能用’-‘(减号) ➢ 不分大小写 ➢ 不能是SQL保留字
1-7
PL/SQL中的标识符
一般不要把变量名声明与表中字段名完全一样,如果这样可能 得到不正确的结果
%ROWTYPE:返回一个记录类型, 其数据类型和数据库表的数据结构相 一致。
例:DECLARE
v_empno emp.empno%TYPE :=&no; rec emp%ROWTYPE; BEGIN SELECT * INTO rec FROM emp WHERE empno=v_empno; DBMS_OUTPUT.PUT_LINE('姓名:'||rec.ename||'工资 :'||rec.sal||'工作时间:'||rec.hiredate); END;