使用存储过程可以使程序执行效率更高、安全性更好,增强程序的可重用性和维护性。接下来将针对存储过程的使用进行详细的讲解。
存储过程有多种调用方法。存储过程必须使用CALL语句调用,并且存储过程和数据库相关,如果要执行其他数据库中的存储过程,需要指定数据库名称。调用存储过程的语法格式如下:
CALL sp_name([parameter[,…]])
上述语法格式中,sp_name为存储过程的名称,parameter 为存储过程的参数。
例如,定义一个名为 CountProc1 的存储过程,,然后调用这个存储过程,具体探作如下:
1.定义存储过程
mysql> DELIMITER//
mysql> CREATE, PROCEDURE CountProc1(IN s_gender VARCHAR(50) ,OUT num INT)
-> BEGIN
-> SELECT COUNT(*) INTO num FROM student WHERE gender=s_gender;
-> END//
Query ok, 0 rows affected (0.10 sec)
mysql> DELIMITER;
2.调用存储过程
mysql> CALL CountProc1("女", @num);
Query oK, l row affected (0.00 sec)
3.查看返回结果
mysql> SELECT @num;
+------+
| @num |
+------+
| 2 |
+------+
1 row in set (0.00 sec)