欢迎来到天天文库
浏览记录
ID:37713441
大小:42.00 KB
页数:9页
时间:2019-05-29
《PLSQL复习指导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PL/SQL复习指导第一部分PL/SQL基础1.PL/SQL 简介1)PL/SQL(Proceduallanguage/SQL)是在标准SQL的基础上增加了过程化处理的语言; 2)Oracle客户端工具访问Oracle服务器的操作语言; 3)Oracle对SQL的扩充; 2.PL/SQL的优缺点 优点: 1)结构化模块化编程,不是面向对象; 2)良好的可移植性(不管Oracle运行在何种操作系统); 3)良好的可维护性(编译通过后存储在数据库里); 4)提升系统性能;缺点 1)不便于向异构数据库移植应用程序(只能用于Oracle); 5.SQL与P
2、L/SQL的区别 SQL:1)第四代语言(智能语言); 2)做什么,不管怎么做; 3)缺少过程与控制语句; 4)无算法 PL/SQL:1)扩展变量和类型; 2)扩展控制结构; 3)扩展过程与函数; 4)扩展对象类型与方法 第二部分PL/SQL程序结构 1.PL/SQL块 答:1)申明部分,DECLARE(可以没有); 2)执行部分,BEGIN...END; 3)异常处理,EXCEPTION(可以没有); 2.PL/SQL开发环境 答:可以运用任何纯文本的编辑器编辑,例如:记事本 3.PL/SQL字符集 答:PL/SQL对大小写不敏感 4.标识符命名
3、规则 答:1)字母开头; 2)后跟任意的非空格字符、数字、货币符号、下划线、或#; 3)最大长度为30个字符(八个字符左右最合适); 5.变量声明 答:语法 Var_nametype[CONSTANT][NOTNULL][:=value]; 注:1)申明时可以有默认值也可以没有; 2)如有[CONSTANT][NOTNULL],变量一定要有一个初始值; 3)赋值语句为“:=”; 4)变量可以认为是数据库里一个字段; 5)规定没有初始化的变量为NULL; 第三章 1.数据类型 答:1)标量型:数字型、字符型、布尔型、日期型; 2)组合型:RECORD
4、(常用)、TABLE(常用)、VARRAY(较少用) 3)参考型:REFCURSOR(游标)、REFobject_type 4)LOB(LargeObject) 2.%TYPE 答:变量具有与数据库的表中某一字段相同的类型 例:v_FirstNamestudengts.first_name%TYPE; 3.RECORD类型 答:TYPErecord_nameISRECORD(/*其中TYPE,IS,RECORD为关键字,record_name为变量名称*/ field1type[NOTNULL][:=expr1],/*每个等价的成员间用逗号分隔*/
5、 field2type[NOTNULL][:=expr2],/*如果一个字段限定NOTNULL,那么它必须拥有一个初始值*/ .../*所有没有初始化的字段都会初始为NULL fieldntype[NOTNULL][:=exprn]); 4.%ROWTYPE 答:返回一个基于数据库定义的类型 DECLARE v_StuRecStudent%ROWTYPE;/*Student为表的名字*/ 注:与3中定一个record相比,一步就完成,而3中定义分二步:a.所有的成员变量都要申明;b.实例化变量; 5.TABLE类型 答:TYPEtabletypeI
6、STABLEOFtypeINDEXBYBINARY_INTEGER; 例:DECLARE TYPEt_StuTableISTABLEOFStudent%ROWTYPEINDEXBYBINARY_INTERGER; v_Studentt_StuTable; BEGIN SELECT*INTOv_Student(100)FROMStudentWHEREid=1001; END; 注:1)行的数目的限制由BINARY_INTEGER的范围决定; 6.变量的作用域和可见性 答:1)执行块里可以嵌入执行块; 2)里层执行块的变量对外层不可见; 3)里层执行块
7、对外层执行块变量的修改会影响外层块变量的值; 第四章 1.条件语句 答:IFboolean_expression1THEN ... ELSIFboolean_expression2THEN/*注意是ELSIF,而不是ELSEIF*/ .../*ELSE语句不是必须的,但ENDIF;是必须的*/ ELSE ... ENDIF; 2.循环语句 答:1)Loop ... IFboolean_exprTHEN/**/ EXIT;/*EXITWHENboolean_expr*/ ENDIF;/**/ ENDLOOP; 2)WHILEboolean_exprL
8、OOP ... ENDLOOP; 3)FORloop_counterIN[REVERSE]low_blound..high
此文档下载收益归作者所有