过程式数据库对象

过程式数据库对象

ID:38740937

大小:298.50 KB

页数:58页

时间:2019-06-18

过程式数据库对象_第1页
过程式数据库对象_第2页
过程式数据库对象_第3页
过程式数据库对象_第4页
过程式数据库对象_第5页
资源描述:

《过程式数据库对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章过程式数据库对象7.1存储过程7.2存储函数7.3触发器7.4事件7.1存储过程使用存储过程的优点有:(1)存储过程在服务器端运行,执行速度快。(2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。(3)确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。7.1.1创建存储过程创建存储过程可以使用CREATEPROCEDURE语句。要在MySQL5.1中创建存储过程,必须具有CREATEROUTINE权限。要想查看数据库中有哪些存储过程,可

2、以使用SHOWPROCEDURESTATUS命令。要查看某个存储过程的具体信息,可使用SHOWCREATEPROCEDUREsp_name命令,其中sp_name是存储过程的名称。CREATEPROCEDURE的语法格式:CREATEPROCEDUREsp_name([proc_parameter[,...]])[characteristic...]routine_body其中,proc_parameter的参数如下:[IN

3、OUT

4、INOUT]param_nametypecharacteristic特征如下:LANGUAGESQL

5、[NOT]DETERMINISTIC

6、{CONTAIN

7、SSQL

8、NOSQL

9、READSSQLDATA

10、MODIFIESSQLDATA}

11、SQLSECURITY{DEFINER

12、INVOKER}

13、COMMENT'string'说明:●sp_name:存储过程的名称,默认在当前数据库中创建。需要在特定数据库中创建存储过程时,则要在名称前面加上数据库的名称,格式为:db_name.sp_name。值得注意的是,这个名称应当尽量避免取与MySQL的内置函数相同的名称,否则会发生错误。7.1.1创建存储过程●proc_parameter:存储过程的参数,param_name为参数名,type为参数的类型,当有多个参数的时候中间用逗号隔开。存储过程可以

14、有0个、1个或多个参数。MySQL存储过程支持三种类型的参数:输入参数、输出参数和输入/输出参数,关键字分别是IN、OUT和INOUT。输入参数使数据可以传递给一个存储过程。当需要返回一个答案或结果的时候,存储过程使用输出参数。输入/输出参数既可以充当输入参数也可以充当输出参数。存储过程也可以不加参数,但是名称后面的括号是不可省略的。注意:参数的名字不要等于列的名字,否则虽然不会返回出错消息,但是存储过程中的SQL语句会将参数名看做列名,从而引发不可预知的结果。characteristic:存储过程的某些特征设定,下面一一介绍。LANGUAGESQL:表明编写这个存储过程的语言为SQL语

15、言,目前来讲,MySQL存储过程还不能用外部编程语言来编写,也就是说,这个选项可以不指定。将来将会对其扩展,最有可能第一个被支持的语言是PHP。DETERMINISTIC:设置为DETERMINISTIC表示存储过程对同样的输入参数产生相同的结果,设置为NOTDETERMINISTIC则表示会产生不确定的结果。默认为NOTDETERMINISTIC。CONTAINSSQL:表示存储过程不包含读或写数据的语句。NOSQL表示存储过程不包含SQL语句。READSSQLDATA表示存储过程包含读数据的语句,但不包含写数据的语句。MODIFIESSQLDATA表示存储过程包含写数据的语句。如果这

16、些特征没有明确给定,默认的是CONTAINSSQL。7.1.1创建存储过程SQLSECURITY:SQLSECURITY特征可以用来指定存储过程使用创建该存储过程的用户(DEFINER)的许可来执行,还是使用调用者(INVOKER)的许可来执行。默认值是DEFINER。COMMENT'string':对存储过程的描述,string为描述内容。这个信息可以用SHOWCREATEPROCEDURE语句来显示。●routine_body:这是存储过程的主体部分,也叫做存储过程体。里面包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,当存储过程体中只有一个S

17、QL语句时可以省略BEGIN-END标志。在开始创建存储过程之前,先介绍一个很实用的命令,即DELIMITER命令。在MySQL中,服务器处理语句的时候是以分号为结束标志的。但是在创建存储过程的时候,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这时服务器处理程序的时候遇到第一个分号就会认为程序结束,这肯定是不行的。所以这里使用DELIMITER命令将MySQL语句的结束标志修改为其他符号。DELIMITER

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

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

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