2020年数据库工程师复习重点:数据库对象

上传人:s****u 文档编号:12606846 上传时间:2020-05-12 格式:DOCX 页数:7 大小:22.06KB
返回 下载 相关 举报
2020年数据库工程师复习重点:数据库对象_第1页
第1页 / 共7页
2020年数据库工程师复习重点:数据库对象_第2页
第2页 / 共7页
2020年数据库工程师复习重点:数据库对象_第3页
第3页 / 共7页
点击查看更多>>
资源描述
2020年数据库工程师复习重点:数据库对象 数据库对象13.1 存储过程13.1.1 存储过程基本概念1、 在关系数据库中,SQL语言是应用程序和数据库管理之间的主要编程接口;2、 使用SQL语言编写代码时,可用两种方法存储和执行代码:(1) 在客户端存储代码,并创建向数据库管理系统发送SQL命令,并处理返回结果的应用程序;(2) 将这些发送的SQL语句存储在数据库管理系统中,这些存储在数据库管理系统中的SQL语句就是存储过程,然后再创建执行存储过程并处理返回结果的应用程序。3、 使用存储过程的好处:(1) 模块化程序设计:只需创建一次存储过程并将其存储在数据库中,以后就可以在应用程序中多次调用存储过程;(2) 提高性能:系统在创建存储过程时对其进行分析和优化,并在第一次执行时进行语法检查和编译,编译好的代码放入内存中,以后再执行此存储过程时,只需直接执行内存中的代码,从而提高代码的执行效率;(3) 减少网络流量:一个需要数百行SQL代码完成的操作现在只需一条执行存储过程的代码即可实现,因此,不再需要在网络中发送这些多语句;(4) 可作为安全机制使用:13.1.2 创建和执行存储过程1、 创建存储过程的SQL语句为:CREATE PROCEDURE,语法格式为:CREATE PROCEDURE 存储过程名OUTPUT,nASSQL语句n其中:(1) default:表示参数的默认值。如果定义了默认值,则在执行存储过程时,可以不必指定该参数的值,默认值必须是常量或NULL;(2) OUTPUT:表明参数是输出参数,该选项的值可以返回给存储过程的调用者。2、执行存储过程的SQL语句是E*ECUTE,语法格式:CREATE E*ECUTE 存储过程名 实参,OUTPUT,n1、 执行有多个输入参数的存储过程时,参数的传递方式有两种:(1) 按参数位置传递值:指执行存储过程的E*EC语句中的实参的排列顺序必须与定义存储过程时定义的参数的顺序一致;(2) 按参数名传递值:指执行存储过程的E*EC语句中要指明定义存储过程时指定的参数的名字以及此参数的值,而不关心参数的定义顺序。2、 注意:(1) 在执行有输出参数的存储过程时,执行语句中的变量名的后边要加上OUTPUT修饰符;(2) 在调用有输出参数的存储过程时,与输出参数对应的是一个变量,此变量用于保存输出参数返回的结果;13.2 用户自定义函数13.2.1 基本概念1、 用户定义函数可以扩展数据操作的功能,它在概念上类似于一般的程序设计语言中定义的函数。13.2.2 创建和调用标量函数标量函数返回单个数据值的函数;1、定义标量函数CREATE FUNCTION 拥有者名. 函数名( 参数名AS标量数据类型=default,n)RETURNS 返回值类型BEGIN函数体RETURN 标量表达式END(1) 同存储过程一样,函数的参数也可以有默认值。(2) 标量表达式:指定标量函数返回的标量值。2、 调用标量函数:当调用标量函数时,必须提供至少由两部分组成的名称:函数拥有者名和函数名。可在任何允许出现表达式的SQL语句中调用标量函数,只要类型一致;13.2.3 创建和调用内嵌表值函数1、 创建内嵌表值函数,其语法为:CREATE FUNCTION 拥有者名. 函数名( 参数名AS标量数据类型=default,n)RETURNS 返回变量 TABLEBEGIN函数体RETURNEND:=(列定义表约束,n)2、调用多语句表值函数多语句表值函数的返回值是一个表,因此对多语句表值函数的使用也是放在SELECT语句的FROM子句中。13.3 触发器13.3.1 触发器基本概念1、 触发器是一种特殊的存储过程,其特殊性在于它不需要由用户来调用,而是当用户对表中的数据进行UPDATE、INSERT或DELETE操作时自动触发执行;2、 触发器常用于下列场合:(1) 完成比CHECK的约束更复杂的数据约束;(2) 为保证数据库性能而维护的非规范化数据;(3) 实现复杂的业务规则,可使业务的处理任务自动进行。13.3.2 创建触发器1、 创建触发器的语句:CREATE TRIGGER,语法为:CREATE TRIGGER 触发器名称ON 表名 视图名FOR AFTERINSTEAD OFINSERT,DELETE,UPDATEASSQL语句(1) 触发器名称在数据库中必须是惟一的;(2) ON子句用于指定在其上执行触发器的表;(3) AFTER:指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,这种触发器称为后触发型触发器;(4) FOR:作用同AFTER;(5) INSTEAD OF:指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发语句的操作,这种触发器称为前触发型触发器;(6) INSTERT、DELETE或UPDATE是引发触发器执行的操作,若同时指定多个操作,则各操作之间用逗号分隔;2、 创建触发器时,需要注意:(1) 在一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可由三个操作引发;(2) 大部分Transact-SQL语句都可用在触发器中,但也有一些限制;(3) 在触发器定义中,可以使用IF UPDATE子句测试在INSERT和UPDATE语句中是否对指定字段有影响;(4) 通常不要在触发器中返回任何结果。3、 创建后触发型触发器使用FOR或AFTER选项定义的触发器为后触发的触发器,即只有在引发触发器执行语句中指定的操作都已完成执行,并且所有的约束检查也成功完成后,才执行的触发器;4、 创建前触发型触发器使用INSTEAD OF 选项定义的触发器为前触发型触发器,在该触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代引发语句的操作。13.4 查看、修改及删除对象13.4.1 查看对象对于创建好的存储过程、函数可通过企业管理器和查询分析器查看这些对象的代码;13.4.2 修改对象1、 修改存储过程:ALTER PROCEDUREALTER PROC 存储过程名OUTPUT,nASSQL语句n修改与定义的语句基本一致,只将CREARE PROC 改成ALTER PROC;2、修改用户自定义函数:修改与定义的语句基本一致,只将CREARE FUNCTION 改成ALTER FUNCTION;3、修改触发器:修改与定义的语句基本一致,只将CREARE TRIGGER 改成ALTER TRIGGER;13.4.3 删除对象1、 删除存储过程:DROP PROCEDURE 存储过程名,n;2、删除用户自定义函数DROP FUNCTION 拥有者名.函数名,n3、删除触发器DROP TRIGGER 触发器名,n
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿件


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

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


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