什么是存储过程?为什么要使用存储过程?如何使用存储过程?
<!–more–>
存储过程是什么
MySQL5 添加了对存储过程的支持,存储过程只适用于MySQL5+。
存储过程是多条SQL语句的集合,能够通过一个完整的动作实现连贯的SQL操作。
存储过程为何存在
- 简化复杂的操作
- 保证数据的完整性
- 简化对变动的管理
- 提高性能
- 能够编写更灵活的代码
存储过程如何使用
执行存储过程
CALL productpricing(
1, // 输入
@avg // 输出 带有@ 的变量
);
SELECT @avg;
创建存储过程
CREAT PROCEDURE ordertotal(
IN onumber INT, // 输入 数据类型与建表的数据类型相同
IN taxable BOOLEAN,
OUT ototal DECIMAL(8, 2) // 输出
) COMMENT 'COMMENT' // 备注
-- Declare variable for total
DECLARE total DECIMAL(8, 2) // 定义变量
-- Declare tax percentage
DECLARE taxrate INT DEFAULT 6
-- Get the order total
SELECT Sum(item_price*quantity)
FROM orderitems
WHERE order_num = onumber
INTO total; // 结果注入变量
-- Is this taxable ?
IF taxable THEN // 条件判断
-- YES
SELECT total+(total/100*taxrate) INTO total;
END IF;
SELECT total INTO ototal;
END;
删除存储过程
DROP PROCEDURE productpricing;
检查存储过程
SHOW CREATE PROCEDURE ordertotal;
参考
- 《MySQL必知必会》