mysql存储过程学习笔记--建立简单的存储过程

mysql存储过程学习笔记--建立简单的存储过程

ID:34724630

大小:115.68 KB

页数:6页

时间:2019-03-10

mysql存储过程学习笔记--建立简单的存储过程_第1页
mysql存储过程学习笔记--建立简单的存储过程_第2页
mysql存储过程学习笔记--建立简单的存储过程_第3页
mysql存储过程学习笔记--建立简单的存储过程_第4页
mysql存储过程学习笔记--建立简单的存储过程_第5页
资源描述:

《mysql存储过程学习笔记--建立简单的存储过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Mysql存储过程学习笔记--建立简单的存储过程我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一、存储过程  存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。而我们常用的操作数据库语言SQL语句在执行

2、的时候需要要先编译,然后执行,所以执行的效率没有存储过程高。  存储过程优点如下:重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。提高性能。存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。  存储过程简单语法:?123

3、CREATEPROCEDURE存储过程名称(  输入输出类型变量名称类型,  456789    输入输出类型变量名称类型  )BEGIN  --声明,语句要完成的操作,增删改查。。。END二、实例  例子中的存储过程均使用mysql作为例子。  表结构如下:DROPTABLEIFEXISTS`person`;CREATETABLE`person`( `id`int(11)NOTNULLAUTO_INCREMENT, `username`varchar(255)DEFAULTNULL, `age`int(11)DEFAULTNULL, `passw

4、ord`varchar(255)DEFAULTNULL, PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=11DEFAULTCHARSET=utf8;  1、只带IN(输入参数)的存储过程   表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值.DROPPROCEDUREIFEXISTSproc_person_findById;--创建存储过程CREATEPROCEDUREproc_person_findById(   innint)BEGIN    SELECT*FRO

5、Mpersonwhereid=n;END--定义变量SET@n=2;--调用存储过程CALLproc_person_findById(@n); 调用结果如下:  2、只带OUT(输出参数)的存储过程  该值可在存储过程内部被改变,并可返回。DROPPROCEDUREIFEXISTSproc_person_getCount--创建存储过程CREATEPROCEDUREproc_person_getCount(   outnint(11))BEGIN    SELECTCOUNT(*)INTOnFROMperson;END--调用存储过程CALLpro

6、c_person_getCount(@n);SELECT@nas'总数'; 调用结果如下:   3、带IN(输入参数)和OUT(输出参数)的  调用时指定,并且可被改变和返回DROPPROCEDUREIFEXISTSproc_person_findInfoById;--创建存储过程CREATEPROCEDUREproc_person_findInfoById(   INnINT(11),   OUTpusernameVARCHAR(255),   OUTpageINT(11))BEGIN    SELECTusername,ageINTOpuser

7、name,pageFROMpersonWHEREid=n;END--定义变量SET@id=2;--调用存储过程CALLproc_person_findInfoById(@id,@username,@age);SELECT@usernameas'用户名',@age'年龄'; 调用结果如下:    4、带INOUT(输入输出)参数的存储过程--输入输出DROPPROCEDUREIFEXISTSproc_person_get_age;--创建存储过程CREATEPROCEDUREproc_person_get_age(INOUTnINT(11))BEGI

8、NSELECTageINTONFROMpersonWHEREid=n;ENDSET@id=1;CALLproc_perso

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

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

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