存储过程
- 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合
- 通过把处理封装在容易使用的单元中,简化复杂操作
- 由于不要求反复建立一系列处理步骤,保证了数据的完整性
- 简化对变动的管理
- 提高性能
- 存储过程可用来编写功能更强更灵活的代码
使用存储过程
- MySQL称存储过程的执行为调用,语句为call
- create procedure pring() begin select avg(price) as priceaverage from products; end;
- 如有问题,第2条前可加delimiter //在end后的分号换为//,然后加上delimiter ;
- delimiter //告诉命令行实用程序使用//作为新的语句分隔符
- call pring();执行刚创建的存储过程并显示返回的结果。因为存储过程实际上是一种函数,所以存储过程名后需要有()符号,即使不传递参数也需要
- 删除存储过程,drop procedure pring;请注意没有使用后面的(),只给出存储过程名
使用参数
- 一般,存储过程并不显示结果,而是把结果返回给你指定的变量
- 变量(variable)内存中一个特定的位置,用来临时存储数据
- MySQL支持IN传递给存储过程,OUT从存储过程中传出和INOUT对存储过程传入和传出类型的参数,存储过程的代码位于begin和end语句内
- create procedure pring(out p1 decimal(8,2))begin select min(price) into p1 from products;end;
- call pring(@pricelow);
- select @pricelow;
- create括号后面加comment 'abc'
- show procedure status结果会显示comment的值
- show create procedure pring;显示存储过程何时由谁创建
- show procedure status like 'pring';可过滤想要的存储过程