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表如下:
创建存储过程,传入性别(男或女),显示对应性别的用户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年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》