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;