《PLSQL简介》PPT课件.ppt

上传人:za****8 文档编号:12668999 上传时间:2020-05-13 格式:PPT 页数:44 大小:444.51KB
返回 下载 相关 举报
《PLSQL简介》PPT课件.ppt_第1页
第1页 / 共44页
《PLSQL简介》PPT课件.ppt_第2页
第2页 / 共44页
《PLSQL简介》PPT课件.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
ORACLE9i数据库SQL和PL/SQL简明教程,邹竞,指定教材书名:Oracle数据库系统SQL与PL/SQL简明教程(第二版)作者:NileshShah翻译:刘伟琴出版社:清华大学出版社出版时间:2005年01月,第10章PL/SQL简介,邹竞,授课方式:投影教学教学目标:让学生对PL/SQL程序有个初步了解。教学内容:让学生对PL/SQL程序有个初步了解,并学会了赋值语句、主机变量的使用,替换变量的使用,以及使用DBMS_OUTPUT包在SQL*PLUS中显示输出结果。数据重点:主机变量和替换变量数据难点:无课时安排:2课时,什么是PL/SQL,虽然SQL功能强大,但是它仍然有很多局限性。因此,ORACLE增加了一种过程化语言作为SQL的编程语言扩展,称为PL/SQL。它是ORACLE的专用语言。PL/SQL也有面向对象语言的特性,例如数据封装、异常处理、信息隐藏、面向对象编程等。PL/SQL允许在他的块中嵌入SQL,SQL用来检索数据。PL/SQL控制语句用来处理PL/SQL程序中的数据。通过PL/SQL块可以对数据进行插入、修改或删除,使得PL/SQL成为一种高效的事务处理语言。,PL/SQL的基本原理,PL/SQL程序包括一些语句,程序中除了用单引号引起来的字符串值之外,PL/SQL对大小写不敏感的PL/SQL属于块结构化语言,PL/SQL块是PL/SQL的基本单位,其中可能包含程序代码、变量声明、异常处理程序、过程、函数,甚至包含其他的PL/SQL块。,PL/SQL的保留字,保留字也叫关键字,是由语言所提供的有特殊含义活动作的单词。如DECLAR、BEGIN、IF、WHILE、EXCEPTION、PROCEDURE、FUNCTION、PACKAGE、TRIGGER等都是PL/SQL的保留字。,用户定义的标识符,用户定义的标识符用来命名变量、常量、过fe程、函数、游标、表、记录和异常。命名这些标识时必须遵循下列规则:名称长度为1-30个字符名称必须以字符开头允许使用字符、数字、$、#、_不允许使用空格不允许使用其它一些专门字符不可使用关键字同一个块内,名称必须是唯一的名称不能和块中所用的字段名相同,常量,常量指的是,不是通过用户定义的标识符来表示的值。常量的类型有:字符串类型:A、Mylover、令狐冲、31、25-11月-05、或者Null数字类型:199、3.1416、-23、5.25E7或者Null布尔类型:True、False或者Null,PL/SQL块结构,PL/SQL是块结构的语言,编写的程序可以分成很多逻辑块,逻辑块使得PL/SQL程序具有模块性,块中每一个对象都有自己的作用域。块包括两种类型:匿名块:没有名称的程序块,它可以在程序的任何地方,在运行时发送到服务器执行。命名块:有名称的程序块,如子程序、过程、函数、包等。触发器是由DML语句以隐含方式调用的一个块。,PL/SQL块包括以下3个部分:声明部分:可选部分,声明在执行部分和异常处理部分要引用的变量、常量、游标、符合数据类型和用户定义的异常。执行部分:必需部分,包括执行块中数据的PL/SQL语句和执行数据库中的SQL语句。异常处理部分:可选部分,在执行部分中存在一个错误条件时,指定执行相应动作的语句。,DECLAREV_FIRSTEMPLOYEE.FNAME%TYPE;V_LASTEMPLOYEE.LNAME%TYPE;D_IDNUMBER(2):=,声明部分,异常处理部分,执行部分,注释,为了增强程序的可读性,我们可以为PL/SQL程序块添加注释。注释并不会被执行。在PL/SQL中添加注释可以使用如下两种方法:写单行注释时,以两个横杠(-)开头,直到行末结束。写多行注释时,以/*开头,以*/结束。,/*一个示例*/DECLAREV_FIRSTEMPLOYEE.FNAME%TYPE;V_LASTEMPLOYEE.LNAME%TYPE;D_IDNUMBER(2):=,PL/SQL的数据类型,PL/SQL有4种数据类型:标量类型、复合类型、引用类型、大对象类型。标量类型由单个元素构成,是原子的,不可再分。复合数据类型由元素或组件构成。PL/SQL支持3种复合数据类型records、tables和varrays,引用数据类型处理的是对象。标量数据类型主要分下面4种:字符类型、数字类型、布尔类型和日期时间类型。,字符类型:char和varchar2数字类型:numberBool类型:true和false日期时间类型:大对象类型:Blob、Clob、Bfile,变量和常量的声明,变量声明是定义一个变量,也可在定义变量的时候为变量赋初值。变量声明在块的DECLARE部分完成。对常量或者具有非空约束的变量都应该初始化。通用的语法格式为:DECLARE变量名1CONSTANT数据类型1NOTNULL:=初值1;变量名2CONSTANT数据类型2NOTNULL:=初值2;CONSTANT关键字表示所声明的事必须初始化的常量,在程序体中不能修改其初值。NOTNULL约束用于变量,该变量必须初始化。DEFAULT字句或:=用于对常量或变量赋初值。,为了增强可读性,我们最好在一行只声明一个变量。例如:DECLAREv_numberNUMBER(2);v_countNUMBER(1):=1;v_stateVARCHAR(2)DEFAULTNJ;c_piCONSTANTNUMBER:=3.1416;v_invoicedateDATEDEFAULTSYSDATE;,锚的声明,PL/SQL使用%TYPE属性来锚定一个变量的数据类型,可以用另一个变量或表中的某个字段来锚定。%TYPE可以保证定义的变量的数据类型和长度与表中的某个字段的数据类型和长度保持一致。使用%TYPE的使用格式一般为:变量名已知的源变量名%TYPE;或者变量名表名.字段名%TYPE;这样,声明的变量就和已知的源变量或者指定的标中的字段的数据类型相同。,例如:DECLAREv_num1NUMBER(3);v_num2v_num1%TYPE;DECLEARv_empsalEMPLOYEE.SALARY%TYPE;当指定的源变量或指定的字段的数据类型发生变化,我们声明的变量的数据类型也会自动发生变化,这就是所谓的锚定。,假如我们不使用锚定方法声明变量,用表的字段对该变量进行赋值,直接指定变量的数据类型或者长度,并不费劲,但是,当由于为了满足将来需要而增加字段长度甚至改变了字段的数据类型后,再用这些字段对变量赋值时,则会发生VALUE_ERROR错误,我们又只能所有程序的变量声明部分去修改变量的长度或者数据类型,非常麻烦。在这种情况下,使用锚定方法声明变量是具有优势的。,嵌套锚定,%TYPE属性可以嵌套使用,例如:DECLAREv_commissionEMPLOYEE.COMMISSION%TYPE;v_total_commissionv_commission%TYPE;v_net_commissionv_total_commission%TYPE;%TYPE声明的源变量可以不必在相同的块中,此变量也可以是在SQL*PLUS环境中声明的全局变量,或者也可以在包含当前块的块中来声明。,%TYPE声明的非空约束,如果源变量声明具有NOTNULL约束,那么%TYPE声明从源中继承了这一NOTNULL约束,在%TYPE声明中必须用一个值对锚定的变量赋初值。如果%TYPE声明的源是表中的字段,则锚定的变量并不继承NOTNULL约束,不需要给锚定的变量赋初值,可以对它赋NULL值。,赋值运算,赋值运算是将一个值赋给另一个变量的方法之一。在变量声明时使用DEFAULT选项或:=可以对变量进行初始化。赋值运算用在PL/SQL的执行部分,通用的语法格式为:变量名:=常量|变量名|表达式例如:v_num1:=100;v_num2:=v_num1;v_sum:=v_num1+v_num2;,绑定变量,绑定变量也叫做主机变量,这些变量在SQL*PLUS环境中声明,被PL/SQL程序块访问。匿名块使用:前缀和主机变量名,也能访问主机变量,主机变量可以作为参数传递给过程和函数。在SQL提示符下用SQL*PLUS的VARIABLE命令,可以声明主机变量。声明主机变量的语法格式为:VARIABLE主机变量名数据类型例如:SQLVARIABLEg_doubleNUMBER就声明了一个NUMBER类型的主机变量g_double,当使用VARIABLE命令声明一个NUMBER型变量时,不需要使用精度和标度。声明VARCHAR2长度时,不需要指定长度。在SQL*PLUS环境中要查看主机变量的值,可以使用PRINT命令。,例如VARIABLEg_doubleNUMBERDECLAREv_numNUMBER(2);BEGINv_num:=5;:g_double:=v_num*2;END;该例中,v_num是局部变量,引用时不需要使用:前缀,:g_double是主机变量,引用时需要使用:前缀。,END标识符是PL/SQL程序块的结束标志,在SQL*PLUS环境中,要在END之后的一行使用/来结束PL/SQL程序块。主机变量的值可以用PRINT命令来查看,但是局部变量不能。我们应该尽可能少用、慎用主机变量,因为主机变量会影响性能,在PL/SQL程序块中,每一次访问主机变量时,PL/SQL引擎都必须停下来,向主机环境查询主机变量的值;另一方面,类似于C语言中的全局变量,主机变量的值可以被任何PL/SQL程序块所改变,增加了模块与模块之间的公共耦合范围,所以要少用、慎用。,PL/SQL中的替换变量,PL/SQL没有显式的I/O语句,但是SQL中的替换变量在PL/SQL中一样有效。例如VARIABLEg_doubleNUMBERDECLAREv_numNUMBER(2);BEGINv_num:=,上例中,PUT_LINE过程显示传递到缓冲区的信息,并在其尾部加上一个换行标记,语法格式为:DBMS_OUTPUT.PUT_LINE(字符串变量|字符串表达式);,VARIABLENUMNUMBERSETSERVEROUTPUTONDECLAREdoubleNUMBER;BEGINDBMS_OUTPUT.PUT(武林至尊,宝刀屠龙);:NUM:=5;double:=:NUM*2;DBMS_OUTPUT.PUT_LINE(DOUBLEOF|TO_CHAR(:NUM)|IS|TO_CHAR(double);END;,VARIABLENUMNUMBERSETSERVEROUTPUTONDECLAREdoubleNUMBER;BEGINDBMS_OUTPUT.PUT_LINE(武林至尊,宝刀屠龙);:NUM:=5;double:=:NUM*2;DBMS_OUTPUT.PUT_LINE(DOUBLEOF|TO_CHAR(:NUM)|IS|TO_CHAR(double);END;,算数运算符,PL/SQL中的算数运算符有如下几种:,算数运算符的优先级,如果一个表达式中存在多个算数运算符,则计算的优先级如下:括号内的运算最优先执行幂运算乘或除运算加或减运算如果存在相同优先级的运算符,按照从左到右的顺序执行,小结:通过本章的学习,让学生对PL/SQL程序有个初步了解,并学会了赋值语句、主机变量的使用,替换变量的使用,以及使用DBMS_OUTPUT包在SQL*PLUS中显示输出结果。作业:教材相关章节的实验室练习,上机完成。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!