MySQL存储过程详解(定义语法及编程实例)

MySQL存储过程详解(定义语法及编程实例)-mikechen

MySQL存储过程定义

存储过程,英文名Stored Procedure,是一组为了完成特定功能的 SQL 语句集合。

存储过程简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法。

 

MySQL存储过程作用

存储过程的作用,主要包含如下3点:

1. 存储过程增强了SQL语言的功能和灵活性 

存储过程可以用流控制语句编写 ,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

2.存储过程允许标准组件是编程

存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句 。

3. 存储过程能实现较快的执行速度

如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。

 

MySQL存储过程语法

1.创建存储过程

语法如下:

CREATE PROCEDURE 存储过程名称 ([ 参数列表 ])

BEGIN

-- SQL语句

END ;

 

2.调用存储过程

语法如下:

CALL 存储过程名称();

 

3.修改存储过程

ALTER PROCEDURE sp_name [characteristic...]
characteristic:
{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT 'string'

 

4.删除存储过程

语法如下:

drop procedure sp_name;

 

5.判断循环等

1)变量的使用

-- *定义变量
DECLARE 变量名称 数据类型 [DEFAULT 默认值]
-- DECLARE定义的是局部变量 只能用在BEGIN END 范围之内

-- *变量赋值
SET 变量名称 = 值;

 

2)if语句的使用

if 条件 then
 statement
 else
 statement
 end if;

 

3)case语句

-- 标准语法
CASE 表达式
WHEN 值1 THEN 执行sql语句1;
[WHEN 值2 THEN 执行sql语句2;]
...
[ELSE 执行sql语句n;]
END CASE;

 

4)循环语句

WHILE 条件判断语句 DO
    循环体语句;
    条件控制语句;
END WHILE;

 

MySQL存储过程实例

给大家举一个简单存储过程实例,代码如下:

users表如下:

MySQL存储过程详解(定义语法及编程实例)-mikechen

创建存储过程,传入性别(男或女),显示对应性别的用户id,返回对应性别的人数。

代码示例如下:

#DELIMITER $$
CREATE PROCEDURE user_procedure(IN sex VARCHAR(2) character set utf8,OUT num INT)
BEGIN
    SELECT  id FROM users WHERE gender=sex;
    SELECT FOUND_ROWS() INTO num;   
END #$$
#DELIMITER ;

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法