《第17章PLSQL概述.ppt》由会员分享,可在线阅读,更多相关《第17章PLSQL概述.ppt(21页珍藏版)》请在三一办公上搜索。
1、第17章 PL/SQL概述,PL/SQL(Procedural Language/SQL)是Oracle对标准数据库SQL语言的扩展。在PL/SQL中,不仅可以使用SQL语句,而且还可以在PL/SQL语句中定义变量和常量、使用条件分支和循环控制语句、可以进行异常处理、可以使用游标进行数据操作等。在任何运行Oracle的平台中,都可以使用PL/SQL进行应用程序的开发。这一节章来介绍PL/SQL的一些基本内容。什么是PL/SQL使用PL/SQL的原因介绍一个简单的PL/SQL例子PL/SQL开发工具简介PL/SQL的编写规范,17.1 PL/SQL介绍,PL/SQL作为一种可以运行在任何Orac
2、le平台中的较为复杂的程序设计语言,在实际的开发应用中得到了广泛的应用。这一节将对PL/SQL做一个总结性的介绍,并结合一个实例讲解为什么要在程序应用中使用PL/SQL。,17.1.1 什么是PL/SQL,PL/SQL的英文全称为Procedural Language/SQL,它是Oracle对标准数据库SQL语言的扩展,它可以运行在任何的Oracle开发环境中。Oracle公司已经将PL/SQL语言集成到Oracle的服务器中,也可以在由其他的第三方提供的工具中使用PL/SQL。PL/SQL语言是一种比较复杂的数据库程序设计语言,它将第四代语言(如SQL)的灵活性与第三代语言(如C、COBO
3、L、C+、Java等)的过程性结构结合在一起,很好的融合了SQL语言中强大的数据库操作性以及程序设计语言中的过程结构。因此,PL/SQL语言的功能强大,可以用它来解决数据库应用中复杂的应用程序。目前,很多的开发人员和数据库管理人员(DBA)在实际应用中都开始使用PL/SQL语言。,17.1.1 什么是PL/SQL,PL/SQL语言中的PL的英文全称是Procedural Language,顾名思义,作为对SQL语言的扩展,PL/SQL语言增加了许多程序设计语言中的过程结构。主要包括以下几个方面的扩展。变量。例如,变量声明、变量初始化等数据类型。例如,标量类型、复合类型、引用类型、对象类型、用户
4、自定义类型等结构控制语句,例如,条件语句IF-ELSE-THEN、CASE和循环语句LOOP、WHILE等。过程和函数。在数据库中以编译好的形式存储,供其他的语句块调用。异常处理。用来处理程序运行时出现的错误,将程序逻辑处理代码与错误处理代码分离。,17.1.2 为什么要使用PL/SQL,前面章节中介绍SQL语言时,已经知道,使用SQL可以很灵活的操作数据库,实现数据表(或者视图)的创建、数据的查询、增加、修改、删除、表结构的修改、权限的授予与回收等操作,那么为什么要使用PL/SQL语言呢。在实际的应用中,有些时候需要处理的业务逻辑可能会比较复杂。现在考虑这样一个问题,一所学校要对某一名教师的
5、职称进行修改,如果这个教师不存在,就向教师信息表中插入一条该教师的记录;如果这个教师存在,就在教师信息表中修改这名教师的职称信息。对于这个问题,如果仅使用SQL语言是无法来完成的,因为在SQL语言中,并没有提供用于判断的语句命令。,17.1.2 为什么要使用PL/SQL,那么使用PL/SQL可以完成上面的这个业务逻辑吗。答案是肯定的。因为PL/SQL语言作为对SQL语言的扩展,提供了像条件判断、循环判断这样的结构控制语句,因此类似与上面的问题(甚至比上面的问题还复杂的问题)可以很容易的用PL/SQL语言来解决。其实现的主要代码如下所示。DECLAREv_ teaID VARCHAR2(15):
6、=t152303;v_ teaName VARCHAR2(10):=王杰;v_age NUMBER(2):=45;v_ dept VARCHAR2(20):=计算机系;,17.1.2 为什么要使用PL/SQL,v_ profession VARCHAR2(10):=教授;v_ salsry NUMBER(6,2):=5000;BEGINUPDATE t_ teacher SET profession=v_ professionWHERE teaID=v_ teaID;IF SQL%NOTFOUNDTHENINSERT INTO T_studentVALUES(v_ teaID,v_ teaNa
7、me,v_age,v_ dept,v_ profession,v_ salsry);END IF;END;,17.2 一个PL/SQL的例子,为了让读者能够了解PL/SQL语句块的基本组成,这里给出一个使用PL/SQL语言完成查询学生信息表(t_student)中指定学生编号对应的学生姓名的例子。在该例中,如果输入的学生编号在学生信息表中存在,则将该教师的信息输出出来,如果输入的学生编号在学生信息表中不存在,则显示“学生编号不存在”的错误信息,并将该信息写入到日志表(t_ log)中,其代码如下:,17.2 一个PL/SQL的例子,DECLAREv_stuName VARCHAR(10);-学
8、生姓名BEGIN/*通过学生编号从学生信息表中*取得对应的学生姓名信息*/SELECT v_stuNameINTO v_stuNameFROM t_studentWHERE stuID=,17.2 一个PL/SQL的例子,DBMS_OUTPUT.PUT_LINE(学生姓名为|v_stuName);-显示学生姓名EXCEPTIONWHEN NO_DATA_FOUND THEN-异常处理DBMS_OUTPUT.PUT_LINE(学生编号不存在)-显示错误信息INSERT INTO t_ log(information,sysdate,user)-将错误信息写入日志文件VALUES(stuID do
9、es not exist!,SYSDATE,admin);END;,17.3 PL/SQL编写规范,PL/SQL语言是作为一种高级的数据库程序设计语言,在编写时也应该遵循一定的编写规范。良好的程序编写规范不仅可以让其程序更容易阅读和理解,而且也有利于以后程序代码的维护。这一节就来介绍编写PL/SQL语言中常用的一些编程规范。,17.3.1 代码注释,在实际应用中,无论用任何一种程序设计语言编写的代码都不能没有注释。在PL/SQL的代码中,一般需要在三个地方为其添加注释。每一个PL/SQL语句块或者过程的开始部分。用于说明这个PL/SQL语句块或者过程是用来干什么的。每一个变量声明的后面。用于说
10、明该变量所表示的意义。PL/SQL语句块或者过程中的主要业务逻辑的处理部分。用于说明该段处理程序的作用以及可能产生的结果。,17.3.2 标识符命名,作为程序设计语言,在实际应用中都会使用标识符命名变量、常量等,在PL/SQL语言中,标识符名称字符长度最大不能超过30个字符,并且需要以字母开头,除此之外对于标识符命名时最好遵循以下的规则。以v_开头定义变量。例如,v_stuID、v_stuName等。以c_开头定义常量。例如,c_constantNumber以e_开头定义用户自定义异常。例如,e_illegalValue以t_开头定义用户自定义类型变量。例如t_userDefinedType以
11、cursor_做前缀定义游标。例如cursor_student以_record做后缀定义一个记录。例如,stu_record,17.3.2 标识符命名,要为变量起有意义的名字。也就是说,通过变量名可以让阅读程序的人知道这个变量是用来做什么的。例如,如果要定义一个学生编号的变量,那么v_stuID的变量名就要比a 的变量名更有意义。,17.3.3 字母大小写,虽然PL/SQL语言不区分大小写,但是在程序中适当区分字母的大小还是有利于程序的可读性。因此在使用PL/SQL语言时字母的大小写可以遵循以下的规则。PL/SQL语言关键字需要大写。例如,DECLAR、BEGIN等。SQL语言中的关键字需要大
12、写。例如,SELECT、WHERE、INSERT、UPDATE等。SQL语言中内置函数需要大写。例如,ROUND()、TO_DATE()、LENGTH()等。,17.3.3 字母大小写,数据类型需要大写。例如,INT、VARCHAR2等。数据库对象使用小写字母。例如,teacher、student等。变量和参数使用小写字母。例如,v_stuID、stul_record等,17.3.4 代码缩进格式,代码格式。为了使程序更容易阅读和理解,一般在一段代码中都会使用制表符(“Tab”键)对代码进行缩进。,17.4 PL/SQL开发工具简介,Oracle公司和许多第三方供应商都提供了许多不同的PL/S
13、QL开发工具。其中主要的PL/SQL开发工具包括SQL*Plus、TOAD、Navicat和PL/SQL Developer。其中,SQL*Plus是和Oracle服务器集成在一起的,是Oracle安装的一部分。它是最简单的PL/SQL开发工具。在提示行中输入PL/SQL语句块会直接发送给数据库,执行后的结果会返回到屏幕上。本节主要介绍除SQL*Plus以外的其他三种PL/SQL开发工具。,17.4.1 TOAD,TOAD是一个强大、低开销的PL/SQL开发工具,它只需占用很少的内存,可以满足管理、开发、性能调优等要求,是Oracle开发者常用的工具之一。,17.4.2 Navicat,Navicat是由Quest Software公司出品的数据库管理工具,支持PL/SQL的调试,可以自动格式化PL/SQL语句,还可以进行数据同步和批处理管理、支持向导的导入和导出、日程备份等功能。,17.4.3 PL/SQL Developer,PL/SQL Developer是一个专门用于Oracle数据库PL/SQL的程序编写与调试程序的集成开发环境,其安装使用非常简单,可以方便的对Oracle数据库PL/SQL的程序进行编辑、编译、测试、调试以及性能优化,是Oracle开发者常用的工具之一。,
链接地址:https://www.31ppt.com/p-5895459.html