MySQL存储过程和函数.docx
《MySQL存储过程和函数.docx》由会员分享,可在线阅读,更多相关《MySQL存储过程和函数.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MySQL存储过程和函数、基本介绍存储过程和函数是事先经过编译并存储在数据库中的段SQL语句的集合,减少数据在数据库和应服务之间的传输,对于提数据处理的 效率是有好处的。存储过程和函数的区别在于函数必须有返回值,存储过程没有,存储过程的参数可以使IN、OUT、INOUT类型,函数的参数只能是IN类型的。如果有函数从其他类型的数据库迁移到MySQL,可能需要将函数改造成存储过程。存储过程和函数允许包含DDL语句,也允许使事务,还可以调其他的存储过程和函数,但不允许执Load Data Infile 语句;、相关操作创建存储过程或函数需要 CREATE ROUTINE 权限,修改或删除存储过程或函
2、数需要 ALTER ROUTINE 权限,执存储过程或函数需要EXECUTE 权限。创建、修改存储过程或函数Create procedure sp_name(proc_parameter,) characteristic routine_bodyCreate function sp_name(func_parameter,) Returns typecharacteristic routine_body Return xxx调语法:call sp_name(parameter,)参数说明:pro_parameter IN | OUT | INOUT param_name type func_p
3、arameterparam_name type存储过程和函数中不允许执 LOAD DATA INFILE 语句。Delimiter $修改命令结束符Characteristic特征值:Language sql 说明下body是使sql编写,系统默认Sql security definer | invoker 可以指定程序该创建程序者的许可来执还是使调者的权限执。默认是definer Comment string 存储过程或函数的注释信息 Contains sql | no sql | reads sql data | modifies sql data供程序使数据的内在信息,前只提供给服务器,
4、并没有根据这些特征值来约束过程实际使数据的情况,默认是contains sql;1. Contains sql 表程序不包含读或写数据的语句。2. No sql 表程序不包含sql语句。3. Reads sql data 表程序包含读数据的语句,但不包含写数据的语句。4. Modifies sql data 表程序包含写数据的语句。实例:返回值 xxx删除存储过程或函数:次只能删除个存储过程或函数,需 ALTER ROUTINE 权限Drop procedure name;查看存储过程或者函数:查看存储过程或函数的状态:Show procedure | function status like
5、 pattern;查看存储过程或函数的定义:Show create procedure | function name;通过查看information_schema.Routines了解存储过程和函数的信息Select * from Routines where routine_name = “name”;三、变量的使 变量不区分写变量的定义Declare 定义个局部变量,作域在 BEGIN END 块中,可以在嵌套的块中。必须写在复合语句的开头,并且在任何其他语句的前。可次声明多个相同类型的变量。如需要,可以使default赋默认值。Declare var_name, type defaul
6、t value;变量的赋值变量可以直接赋值,或者通过查询赋值。直接赋值使set,可以赋常量或者赋表达式。Set var_name = expr ,var_name = expr Select col_name , INTO var_name , from xxx.; #查询结果必须只有Set a = xxx; 相当于全局变量定义条件和处理:处理过程中遇到问题时相应的处理步骤。条件定义Declare condition_name CONDITION FOR condition_value条件处理(游标中有实例)Declare handler_type HANDLER FOR condition_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 存储 过程 函数
限制150内