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

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

MySQL存储过程定义

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

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

 

MySQL存储过程作用

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

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

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

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

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

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

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

 

MySQL存储过程语法

1.创建存储过程

语法如下:

  1. CREATE PROCEDURE 存储过程名称 ([ 参数列表 ])
  2.  
  3. BEGIN
  4.  
  5. -- SQL语句
  6.  
  7. END ;

 

2.调用存储过程

语法如下:

  1. CALL 存储过程名称();

 

3.修改存储过程

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

 

4.删除存储过程

语法如下:

  1. drop procedure sp_name

 

5.判断循环等

1)变量的使用

  1. -- *定义变量
  2. DECLARE 变量名称 数据类型 [DEFAULT 默认值]
  3. -- DECLARE定义的是局部变量 只能用在BEGIN END 范围之内
  4.  
  5. -- *变量赋值
  6. SET 变量名称 = 值;
  7.  

 

2)if语句的使用

  1. if 条件 then
  2. statement
  3. else
  4. statement
  5. end if;

 

3)case语句

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

 

4)循环语句

  1. WHILE 条件判断语句 DO
  2. 循环体语句;
  3. 条件控制语句;
  4. END WHILE;

 

MySQL存储过程实例

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

users表如下:

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

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

代码示例如下:

  1. #DELIMITER $$
  2. CREATE PROCEDURE user_procedure(IN sex VARCHAR(2) character set utf8,OUT num INT)
  3. BEGIN
  4. SELECT id FROM users WHERE gender=sex;
  5. SELECT FOUND_ROWS() INTO num;
  6. END #$$
  7. #DELIMITER ;
评论交流
    说说你的看法
欢迎您,新朋友,感谢参与互动!