1、mysql 存储过程语法学习2008-12-23 19:50一个存储过程包括名字,参数列表,以及可以包括很多 SQL 语句的 SQL 语句集。创建存储过程:语法:CREATE PROCEDURE p()BEGIN/*此存储过程的正文*/ENDCREATE PROCEDURE productpricing()BEGINSELECT Avg(pro_price) AS priceaverageFROM products;END;# beginend 之间是存储过程的主体定义# mysql 的分界符是分号(;)调用存储过程的方法是:# CALL 加上过程名以及一个括号# 例如调用上面定义的存储过程C
2、ALL productpricing(); # 哪怕是不用传递参数,存储过程名字后面的括号“()”也是必须的删除存储过程的方法是:DROP PROCUDURE productpricing;创建带参数的存储过程:CREATE PROCUDURE productpricing(OUT p1 DECIMAL(8,2),OUT ph DECIMAL(8,2),OUT pa DECIMAL(8,2)BEGINSELECT Min(prod_price) INTO pl FROM products;SELECT Max(prod_price) INTO ph FROM products; SELECT
3、Avg(prod_price) INTO pa FROM products;END;# DECIMAL 用于指定参数的数据类型# OUT 用于表明此值是用于从存储过程里输出的# MySQL 支持 OUT, IN, INOUT调用带参数的存储过程:CALL productpricing(pricelow,pricehigh,priceaverage); # 所有的参数必须以开头# 要想获取priceaverage 的值,用以下语句SELECT priceaverage;# 获取三个的值,用以下语句SELECT pricehigh, pricelow, priceaverage;另一个带 IN 和 OUT 参数的存储过程:CREATE PROCEDURE ordertotal(IN onumber INT,OUT ototal DECIMAL(8,2)BEGINSELECT Sum(item_price*quantity)FROM orderitemsWHERE order_num = onumberINTO ototal;END;CALL ordertotal(20005, total);SELECT total;