1、存储过程:就是一些编译好了的 sql 语句,这些 SQL 语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。
优点:
1、存储过程因为 SQL 语句已经预编译过了,因此运行的速度比较快。
2、存储过程在服务器端运行,减少客户端的压力。
3、允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次,类似方法的复用。
4、减少网络流量,客户端调用存储过程只需要传存储过程名和相关参数即可,与传输 SQL 语句相比自然数据量少了很多。
5、增强了使用的安全性,充分利用系统管理员可以对执行的某一个存储过程进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。程序员直接调用存储过程,根本不知道表结构是什么,有什么字段,没有直接暴露表名以及字段名给程序员。
缺点:
调试麻烦(至少没有像开发程序那样容易),可移植性不灵活(因为存储过程是依赖于具体的数据库)。
2、如何执行存储过程?
执行的语句是CALL,示例:
CALL productpricing(@pricelow,
@pricehigh,
@priceaverage);
其中,执行的是名为producpricing的存储过程;计算并返回价格的最高,最低和平均值。可以显示结果,也可以不显示结果
3、如何创建存储过程?
示例:
CREATE PROCEDURE productpricing() //括号里如果有参数可以列出;
BEGIN //这是存储过程的主体,由一个select语句构成;
SELECT Avg(prod_price) AS priceaverage
FROM products;
END;
4、如何删除存储过程?
执行下列语句:
DROP PROCEDURE productpricing;
注意 :所有的MySQL变量都以@开头。
5、显示所有的存储过程信息。
SHOW CREATE PROCEDURE ordertotal;