




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PL SQL程序设计简介 什么是PL SQL PL SQL是ProcedureLanguage StructuredQueryLanguage 过程化SQL语言 的缩写PL SQL是对SQL语言存储过程语言的扩展 PL SQL的优点 它最大的优点是提供了一种服务器端存储过程语言 可以对数据进行快速高效的处理 任何客户 服务器工具都能访问PL SQL程序 具有很好的可重用性 可以使用ORACLE数据工具管理存储在服务器中的PL SQL程序的安全性 可以授权或撤销数据库其他用户访问PL SQL程序的能力 对于SQL ORACLE必须在同一时间处理每一条SQL语句 在网络环境下这就意味着每一个独立的调用都必须被oracle服务器处理 这就占用大量的服务器时间 同时导致网络拥挤 而PL SQL是以整个语句块发给服务器 这就降低了网络拥挤 PL SQL块结构和组成元素 PL SQL程序由三个块组成 即声明部分 执行部分 异常处理部分 PL SQL块 PL SQL块结构和组成元素 PL SQL块的结构如下 DECLARE 声明部分 在此声明PL SQL用到的变量 类型及游标 以及局部的存储过程和函数 BEGIN 执行部分 过程及SQL语句 即程序的主要部分 EXCEPTION 执行异常部分 错误处理 END 其中执行部分是必须的 PL SQL块结构和组成元素 PL SQL块可以分成三类 匿名块 动态构造 只能执行一次子程序 存储在数据库中的存储过程 函数及包等 当在数据库上建立好后可以在其它程序中调用它们触发器 当数据库发生操作时 会触发一些事件 从而自动执行相应的程序 PL SQL中的标识符 PL SQL程序设计中的标识符定义与SQL的标识符定义的要求相同标识符名不能超过30字符第一个字符必须为字母不能用 减号 不分大小写不能是SQL保留字 PL SQL中的标识符 一般不要把变量名声明与表中字段名完全一样 如果这样可能得到不正确的结果 例 DECLAREEnamevarchar2 20 KING BEGINDELETEFROMempWHEREename ename END PL SQL中的标识符 下面是建议使用的变量命名方法 练习 给 KING 的工资涨10 PL SQL中的变量类型 PL SQL中声明变量 在语句块的声明部分对变量声明 声明一个变量的语法是 variable name constant type notnull value 其中 variable name为变量名type为类型value为变量的初值 PL SQL中声明变量 例 DECLAREV DescriptionVARCHAR2 50 V NumberNUMBER 45 V CounterBINARY INTEGER 0 注意 如果变量在声明时使用了NOTNULL选项则必须为变量指定初值 如果变量在声明时使用了CONSTANT选项则必须为变量指定初值 并且该初值不能被改变 练习 查询员工号为7788的员工姓名 并显示在控制台 PL SQL中的复合类型 记录类型 记录类型是把逻辑相关的数据作为一个单元存储起来 定义记录类型语法如下 TYPErecord typeISRECORD Field1type1 NOTNULL exp1 Field2type2 NOTNULL exp2 Fieldntypen NOTNULL expn 练习1 创建一个图书记录类型 书号 书名 显示结果为 书号 1100书名 VB Net练习2 显示7788号员工的员工号 姓名 工资 PL SQL中的复合类型 TYPE 定义一个变量 其数据类型与已经定义的某个数据变量的类型相同 或者与数据库表的某个列的数据类型相同 这时可以使用 TYPE 例 DECLARE 用 TYPE类型定义与表相配的字段TYPEt RecordISRECORD T noemp empno TYPE T nameemp ename TYPE T salemp sal TYPE 声明接收数据的变量v empt Record PL SQL中的复合类型 ROWTYPE 返回一个记录类型 其数据类型和数据库表的数据结构相一致 例 DECLAREv empnoemp empno TYPE PL SQL表 PL SQL表或者称为索引表 index table 是可以在PL SQL程序中引用 能够模仿数组的非永久表 用户可以定义一个表类型 然后声明这种类型的变量 接下来 用户就可以将记录添加到用户的PL SQL表中 并且采用与引用数组元素大体相同的方法引用他们 表包括两个基本成分 数据处理类型为BINARY INTEGER主键标量或记录数据类型的列 PL SQL表 定义一个表 TYPEtype nameISTABLEOF column type variable TYPE table column TYPE NOTNULL table ROWTYPEINDEXBYBINARY INTEGER 例 DECLARETYPEdept table typeISTABLEOFdept ROWTYPEINDEXBYBINARY INTEGER my dname tabledept table type 引用表元素 例 DECLAREtypedept table typeistableofdept ROWTYPEindexbybinary integer my dname tabledept table type intnumber 3 BEGINint 10 my dname table int dname searching dbms output put line my dname table int dname int 0 my dname table int dname market dbms output put line my dname table int dname int 10 my dname table int dname finance dbms output put line my dname table int dname END PL SQL表 注意 Index by表中的元素不一定要按任何特定的顺序排序用于Index by表的关键字没有必要是顺序的关键字唯一允许的类型是BINARY INTERGER 练习 定义数组元素为部门表的记录的数组 保存10号 20号部门的信息并显示 PL SQL中的可变数组 一般格式为 TYPEtype nameISVARRAY maximum size OFelement type NOTNULL 其中 type name是新可变长数组类型的类型名 maximum size是一个指定可变数组中元素最大数目的整数 element type是一个PL SQL标量 记录或对象类型 NOTNULL子串表示集合中的每一个元素都必须有值 一般格式为 DECLAREtypenumberlistisvarray 10 ofnumber 5 typerecordlistisvarray 5 ofdept rowtype 引用数组元素 例 DECLAREtypestringsisvarray 5 ofvarchar2 10 Declareavarraywithfourelementv liststrings strings scott peter smith tom intnumber BEGINint 1 dbms output put line v list int v list int urman dbms output put line v list int int 3 dbms output put line v list int v list int jackson dbms output put line v list int v list extend v list 5 oracle dbms output put line v list 5 END PL SQL表和可变数组的区别 VARRAY集合中的元素的数量是有限的 Index by则是没有限制的 Index by表的下标可以有间隔 VARRAY集合的下标之间没有间隔 Index by表不能存储在数据库中 但嵌套表和VARRAY可以被存储在数据库中 Index by表初始化是自动进行的 VARRAY就必须使用内建的构造函数 构造函数和集合的名字相同 表和数组属性 表和数组属性 例 DECLAREtypestrings tableistableofvarchar2 10 indexbybinary integer stringsstrings table intnumber BEGINint 1 strings int element1 ifstrings exists int thendbms output put line strings int elsedbms output put line nodata return endif 表和数组属性 例 strings 2 element2 strings 3 element3 strings 4 element4 strings 5 element5 strings 6 element6 dbms output put line strings count dbms output put line strings first dbms output put line strings last dbms output put line strings next 2 dbms output put line strings prior 4 strings delete 1 3 dbms output put line strings 2 END PL SQL运算符和表达式 关系运算符 PL SQL运算符和表达式 一般运算符 PL SQL运算符和表达式 逻辑运算符 PL SQL中的变量赋值 在PL SQL编程中 变量赋值是一个值得注意的地方 它的语法如下 variable expression variable是一个PL SQL变量 expression是一个PL SQL表达式 BOOLEAN型变量赋值 布尔值只有TRUE FALSE及NULL三个值 空值加数字仍是空值 NULL NULL 空值加 连接 字符 结果为字符 NULL PL SQL中的变量赋值 例 DECLAREdoneBOOLEAN thefollowingstatementsarelegal BEGINdone FALSE WHILENOTdoneLOOPNull ENDLOOP END PL SQL中的变量作用范围及可见性 PL SQL的变量作用范围特点是 变量的作用范围是在所引用的程序单元 块 子程序 包 内 即从声明变量开始到该块的结束一个变量 标识 只能在所引用的块内是可见的当一个变量超出了作用范围 PL SQL引擎就释放用来存放该变量的空间 因为它可能不用了 在子块中重新定义该变量后 它的作用仅在该块内 PL SQL中的变量作用范围及可见性 例 DECLAREv NumberNUMBER 3 2 BEGINDECLAREv CharacterVARCHAR2 10 BEGIN END END v Number的作用域 v Character的作用域 PL SQL中的注释 在PL SQL里 可以使用两种符号来写注释 PL SQL允许用双 来写注释 它的作用范围是只能在一行有效 例 V SalNUMBER 12 2 工资变量使用 来加一行或多行注释 例 文件名 department salary sql PL SQL简介 例 简单数据查询例子DECLAREemp idemp empno TYPE 7788 emp nameemp ename TYPE wagesemp sal TYPE BEGINSELECTename NVL sal 0 NVL comm 0 INTOemp name wagesFROMempWHEREempno emp id DBMS OUTPUT PUT LINE emp name to char wages END PL SQL简介 例 简单数据插入例子 本例子仅是一个简单的插入 不是实际应用 DECLAREv enameVARCHAR2 20 Bill v salNUMBER 7 2 1234 56 v deptnoNUMBER 2 10 v emp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班雪花片教学故事课件
- 离子束混合设备维护考核试卷及答案
- 服务机器人传感器集成工艺考核试卷及答案
- 矿棉板隔热层施工技术要点讲解考核试卷及答案
- 黑色金属铸件精铸工艺考核试卷及答案
- 初中地理黄河文化学案有配套课件和教案
- 2025年黑龙江省牡丹江市导游资格全国导游基础知识模拟题(附答案)
- 焦炭生产持续改进工艺考核试卷及答案
- 2025年河南省政府采购评审专家考试题库附含答案
- 农产品脱蜡精制工艺考核试卷及答案
- GB/T 19289-2019电工钢带(片)的电阻率、密度和叠装系数的测量方法
- 《中国特色社会主义政治经济学(第二版)》第一章导论
- 《安娜·卡列尼娜》-课件-
- sg1000系列光伏并网箱式逆变器通信协议
- 妇科疾病 痛经 (妇产科学课件)
- 重庆大学介绍课件
- 《李将军列传》教学教案及同步练习 教案教学设计
- GMP基础知识培训(新员工入职培训)课件
- 基于Java的网上书城的设计与实现
- 酒店客房验收工程项目检查表(双床房、大床房、套房)
- 开音节闭音节中元音字母的发音规律练习
评论
0/150
提交评论