- 什么是存储过程
- 创建一个简单的存储过程
- 存储过程中的参数
- 存储过程的优势和不足
一、什么是存储过程
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。
一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。
存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能
MySQL 5.0开始支持存储过程,可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。
创建一个简单的存储过程
格式 :
MySQL存储过程创建的格式:
CREATE PROCEDURE 过程名 ([过程参数[,…]])
[特性 …] 过程体
这里先举个例子:
mysql> DELIMITER // mysql> CREATE PROCEDURE proc1(OUT s int) -> BEGIN -> SELECT COUNT(*) INTO s FROM user; -> END -> // mysql> DELIMITER ;
注:
(1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以”;”为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将”;”当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。
(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用”,”分割开。
(3)过程体的开始与结束使用BEGIN与END进行标识。
这样,我们的一个MySQL存储过程就完成了,是不是很容易呢?
再看一个简单的存储过程:
create procedure porcedureName () begin select name from user; end;
存储过程用create procedure 创建, 业务逻辑和sql写在begin和end之间。mysql中可用call porcedureName ();来调用过程。
-- 调用过程 call porcedureName ();
该存储过程没有参数, 只是在调用的时候查询了用户表的用户名而已, 调用结果如下
name |
admin |
admin1 |
admin2 |
admin3 |
删除存储过程
DROP PROCEDURE IF EXISTS porcedureName; -- 没有括号()
125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/2947.html