创建存储过程的格式
<span style="font-size:18px;">CREATE PROCEDURE pro_name(参数)
pro_body</span>
参数的类型
IN:输入参数(需要带类型)
OUT:输出参数
调用存储过程的格式
<span style="font-size:18px;">CALL pro_name()</span>
演示表
1.创建表
<span style="font-size:18px;">CREATE TABLE t(
id INT,
name char(3));</span>
2.插入数据
<span style="font-size:18px;">INSERT t VALUES(1,'N'),(2,'I'),(3,'H'),(4,'A'),(5,'O');</span>
3.查看结果
简单的存储过程
<span style="font-size:18px;">CREATE PROCEDURE t1()
SELECT NOW();</span>
带有IN输入参数的存储过程
--删除与输入参数相同的记录
<span style="font-size:18px;">CREATE PROCEDURE t2(IN tID INT)
DELETE FROM t WHERE id = tID;</span>
执行存储过程
<span style="font-size:18px;">CALL t2(1);</span>
执行结果
同时带有IN输入参数和OUT输出参数
--删除与输入参数相同的记录,并返回记录的条数
1.创建存储过程
<span style="font-size:18px;">DELIMITER ~.~
CREATE PROCEDURE t3(IN tID INT,OUT c INT)
BEGIN
DELETE FROM t WHERE id = tID;
SELECT COUNT(id) FROM t INTO c;
END ~.~
DELIMITER ;
</span>
2.查看记录
3.执行存储过程
<span style="font-size:18px;">CALL t3(4,@c);
SELECT @c;</span>
总结
存储过程可以返回多个值,而函数针对性强。
存储过程一般独立执行,而函数可以作为其他sql语句组成部分
开发过程复杂的一些操作,比使用php、jsp、c#.NET要快!