面向对象的SQL扩展

面向对象的SQL扩展

ID:46634693

大小:545.50 KB

页数:100页

时间:2019-11-26

面向对象的SQL扩展_第1页
面向对象的SQL扩展_第2页
面向对象的SQL扩展_第3页
面向对象的SQL扩展_第4页
面向对象的SQL扩展_第5页
资源描述:

《面向对象的SQL扩展》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库应用技术 第五章面向过程的SQL扩展内容概要服务器端程序PL/SQL的基本结构控制流过程与函数游标错误与异常处理触发器服务器端程序存储过程:用户创建,用SQL和其他语言(如PL/SQL)编写的过程或函数,存储在数据库内部,用来完成一个特定的任务。Oracle:PL/SQLMSSQL:Transaction-SQLPL/SQL:ORACLE对SQL进行扩展的过程式语言,具有通用程序设计语言的绝大部分特性,能够完成较为复杂和完整的功能可以用来编写存储过程。服务器端程序存储过程的优点安全:使用创建者权限、调用者不需要了解内部结构,不需要内部权限。性能:网络开销小,

2、不传送中间结果节约SQL代码分析时间代码可重用完整性和一致性特性:可以使用变量、游标、控制结构,具有模块化、数据抽象、信息隐藏、错误处理等特性。内容概要服务器端程序PL/SQL的基本结构控制流过程与函数游标错误与异常处理触发器PL/SQL的基本结构-块结构块结构一个块的语法地位等价于一条语句块的整体构成[<>][DECLARE声明部分]BEGIN执行部分[EXCEPTION错误处理部分]END;PL/SQL的基本规则每条语句可以写在多行每条语句都以;结尾。语句保留字和变量不区分大小写一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果变

3、量的定义与使用变量类型简单变量类型和字段的变量类型相同记录变量类型一组具有不同类型的变量的集合,类似C中的STRUCT或PASCAL中的RECORD集合变量类型变量的定义与使用变量声明声明定义:变量名、变量类型〔缺省值〕必须先声明,后使用在declare段声明不允许前向引用一行中只能定义一个变量大小写不敏感变量的定义与使用简单示例emp_countNUMBER(4);(缺省值为NULL)缺省值blood_typeCHAR:=‘0';blood_typeCHARDEFAULT‘0';NOTNULL,必须有缺省值emp_countNUMBER(3)NOTNULL:=0;

4、变量的定义与使用%TYPE使用其它变量或列的数据类型,但不继承NOTNULL属性语法:Variable_nametable.column%TYPEcreditNUMBER(7,2);debitcredit%TYPE;经常用于表中字段的数据类型my_dnamesales.sname%TYPE;优点:不需要知道精确类型;在表定义发生变化时,不用修改程序变量的定义与使用%ROWTYPE:用户用来定义单一的变量,包含对应于数据库表的每一列的多个变量。DECLAREemp_recemp%ROWTYPE;(表)CURSORc1ISSELECTdeptno,dname,locFR

5、OMdept;dept_recc1%ROWTYPE;(视图)变量的定义与使用赋值与计算、比较使用:=作为赋值运算符通过SQLSELECTINTO或FETCHINTO给变量赋值SELECTSUM(SALARY),SUM(SALARY*0.1)INTOOTAL_SALARY,TATAL_COMMISSIONFROMEMPLOYEEWHEREDEPT=10;其他计算、比较方法类似于普通语言比较中的短路赋值IF(on_hand=0)OR(on_order/on_hand<5)THEN如果满足第一个表达式,第二个比较表达式就不会再做比,也就是说跳过了第二个比较表达式。And连

6、接的表达式也是相似的,不同的是当第一个表达式不满足的时候,后面的也不用进行比较了。作用域外层定义的变量可以在子块中使用可以在不同块中定义同名变量子块可以通过外层的块名来引用外层变量例:declarel_parent_numbernumber;beginl_parent_number:=1;declarel_child_numbernumber:=2;begindbms_output.put_line(l_parent_number);end;l_child_number:=3;end;PL/SQL中的SQL可以直接在PL/SQL中使用DQL和DML,但不能使用DDL

7、和DCL直接在SQL语句中使用变量的值可以出现表达式的地方都可以使用变量直接写变量名,不需要额外的语法要素容易和字段混淆在MSSQL中,使用:作为前缀如where子句、select子句PL/SQL中的SQL将SELECT查询后结果赋值给一个变量SELECT…INTO<变量列表>FROM子句[…其他子句]要求SELECT语义必须返回一行结果,若返回多行或0行会在运行时报错必须在逻辑上保证正确,例如使用主键、聚合函数。与子查询不同,返回0行也是错误如何进行错误处理,见后面章节内容概要服务器端程序PL/SQL的基本结构控制流语句过程与函数游标错误与异常处理触发器控制流

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。