mysql学习之存储过程
来源:互联网 发布:sketch3 mac 破解汉化 编辑:程序博客网 时间:2024/06/07 16:04
1、什么是存储过程
在我看来,存储过程类似于我们编程中的过程或函数。由多条SQl语句来实现一个比较复杂的功能。
2、作用
1)通过把处理封装在容易使用的单元中,简化复杂的操作
2)通过把处理封装在容易使用的单元中,简化复杂的操作。像接口一样,所有的开发人员和应用程序调用相同的存储过程,保证了数据安全和统一
3)简化对变动的管理。如果表名、列名或业务逻辑有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。通过存储过程限制对基础数据的访问减少
4)提高性能。因为使用存储过程比使用单独的SQL语句要快
3、创建
CREATE PROCEDURE [过程名](参数) //没有参数也要写()
参数修饰 IN:传入存储过程的参数; OUT:传出存储过程的参数; INOUT:传入和传出的存储过程参数
一个不带参数的例子:
CREATE PROCEDURE PRO_AvgPrice()
BEGIN
SELECT Avg(prod_proice) AS AvgPrice
FROM products
END;
一个带参数的例子:
CREATAE PROCEDURE PRO_Price(
OUT Pl DECIMAL(8,2),
OUT Ph DECIMAL(8,2),
OUT Pa DECIMAL(8,2)
)
BEGIN
SELECT Min(prod_price) INTO Pl FROM products;
SELECT Max(prod_price) INTO Ph FROM products;
SELECT Avg(prod_price) INTO Pa FROM products;
END;
DECIMAL(8,2):
注意的是decimal(8,2)总长8位,包括1位小数点和2为小数,也就是说8-1-2=5 整数位只有5位 如 12345.21
4、调用
CALL PRO_AvgPrice();
CALL PRO_Price(@priceLow, @priceHigh, @priceAverage); //变量都必须以@开始。
可显示
SELECT @priceLow, @priceHigh, @priceAverage;
5、删除存储过程
DROP PROCEDURE PRO_AvgPrice //删除不存在的存储过程将报错
DROP PROCEDURE PRO_AvgPrice IF EXISTS
6、显示存储过程的创建语句
SHOW CREATE PROCEDURE PRO_Price;
7、显示所有的存储过程的状态列表,可获得存储过程创建的时间,由谁创建等信息
SHOW PROCEDURE STATUS
8、显示部分存储过程的状态列表
SHOW PROCEDURE STATUS LIKE 'PRO_Price';
- mysql学习之存储过程
- MySQL之存储过程.触发器学习整理
- MySQL之存储过程.触发器学习整理
- mysql 存储过程学习
- mysql 存储过程学习
- mysql 存储过程学习
- MySql学习存储过程
- MySql 存储过程学习
- MySQL存储过程学习
- mysql存储过程学习
- mysql 存储过程学习
- mysql 学习---->存储过程
- mysql 存储过程学习
- mysql存储过程学习
- MySQL存储过程学习
- mysql之存储过程
- mysql之存储过程
- mysql之存储过程
- 支持移动端的HTML5 Canvas逼真黑板特效
- 设计模式--Memento 模式
- Socket套接字
- python脚本编写
- mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用
- mysql学习之存储过程
- Android 布局文件中的tools属性
- 复习linux命令-[awk,comm,cut]
- 通过sql*plus工具操作ORACLE 常用命令
- 坦克问题的频率及贝叶斯解释
- View和ViewGroup的基本绘制流程
- 基于kubernetes构建Docker集群管理详解
- Android 之手势识别
- JavaScipt的对象是什么--相当经典的一段话