您的位置:首页 > 数据库 > MySQL

mysql 存储过程的学习

2014-12-16 12:21 148 查看


存储过程 Stored Procedure

存储过程就是保存一系列SQL命令的集合,将这些sql命令有组织的形成一个小程序,这样会实现很复杂的处理。SQL基本是一个命令一个命令执行,虽然可以通过连接、子查询等实现些高级的处理,但局限性是显而易见的


存储过程的优势

提高执行性能(存储过程事先完成了解析、编译的处理,执行时能减轻数据库负担)

可减轻网络负担(比起多次传递SQL命令本身,这大大减轻了网络负担)

可防止对表的直接访问(可只赋予用户对相关存储过程的访问权限)

存储过程会保存在数据库中,应用程序只需要知道调用哪个存储过程就可以完成相应处理


使用存储过程

参数种类分为:

IN:输入型

OUT:输出型

INOUT:输入输出型

格式:

示例:

请将上面的[LIKE]替换为LIKE,SB度娘云加速以为我要攻击自己服务器。。。


注意事项

DELIMITER命令改变分隔符

默认分隔符是“;”存储过程中肯定会有“;”,所以使用其将分隔符改为“//”,创建好后,在将分隔符改回“;”

可使用的控制语句


简单的实例

创建存储函数

请将上面的[LIKE]替换为LIKE,SB度娘云加速以为我要攻击自己服务器。。。

查看创建的存储函数语句

请将上面的[LIKE]替换为LIKE,SB度娘云加速以为我要攻击自己服务器。。。

查看创建的存储函数状态

调用存储过程,成功

演示OUT类型参数

请将上面的[LIKE]替换为LIKE,SB度娘云加速以为我要攻击自己服务器。。。

调用成功

删除存储过程


存储过程中的条件判断


变量作用域

内部的变量在其作用域范围内享有更高的优先权,当执行到end。变量时,内部变量消失,此时已经在其作用域外,变量不再可见了,应为在存储

过程外再也不能找到这个申明的变量,但是你可以通过out参数或者将其值指派

给会话变量来保存其值。


IF语句

格式:

IF多分枝演示

演示成功


CASE语句

格式:

CASE演示


WHILE (前置判断)

根据条件,循环有可能一次不执行

格式:

演示while

演示成功


REPEAT (后置判断)

不论条件如何,循环至少会执行一次 command1

格式:

演示repeat

调用成功


loop ·····end loop:

loop循环不需要初始条件,这点和while 循环相似,同时和repeat循环一样不需要结束条件, leave语句的意义是离开循环。


MySQL存储过程的基本函数

字符串类

注[1]:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1

数学类

注[2]:HEX()中可传入字符串,则返回其ASC-11码,如HEX(‘DEF’)返回4142143

也可以传入十进制整数,返回其十六进制编码,如HEX(25)返回19

注[3]:返回类型并非均为整数

日期时间类

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: