存储过程文档--MySQL 存储过程是 MySQL 中的一个强大功能,它允许用户预先将常用的或复杂的工作写入 SQL 语句,并将其存储起来,以便在以后的数据库操作中可以快速调用和执行。存储过程可以提高数据库的执行速度,减少数据库开发人员的工作量,并提高安全性。 什么是存储过程? 存储过程是一个预先写好的 SQL 语句集合,通过存储过程,可以将复杂的操作封装起来,并与数据库提供的事务处理结合使用。存储过程可以重复使用,减少数据库开发人员的工作量,并提高安全性。 存储过程的优点 1. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 当对数据库进行复杂操作时(如对多个表进行 Update、Insert、Query、Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3. 存储过程可以重复使用,减少数据库开发人员的工作量。 4. 安全性高,可设定只有某些用户才具有对指定存储过程的使用权。 存储过程的种类 1. 系统存储过程:以 sp_ 开头,用来进行系统的各项设定、取得信息、相关管理工作。 2. 扩展存储过程:以 XP_ 开头,用来调用操作系统提供的功能。 3. 用户自定义的存储过程:这是我们所指的存储过程。 创建存储过程的基本语法 Create procedure procedue_name [@parameter data_type][output] [with]{recompile|encryption} as sql_statement 实例 1: 查询表 Book 的内容的存储过程 Create proc query_book as select * from book go exec query_book 实例 2: 加入一笔记录到表 book,并查询此表中所有书籍的总金额 Create proc insert_book @param1 char(10), @param2 varchar(20), @param3 money, @param4 money output with encryption as insert book(编号, 书名, 价格) Values(@param1, @param2, @param3) select @param4=sum(价格) from book go 执行例子: declare @total_price money exec insert_book '003', 'Delphi 控件开发指南', $100, @total_price print '总金额为' + convert(varchar, @total_price) go 存储过程的传回值 存储过程可以有三种传回值:return、output 和 Recordset。 1. 以 Return 传回整数 2. 以 output 格式传回参数 3. Recordset 传回值 实例 3:设有两个表为 Product,Order Create proc query_product as select * from Product go exec query_product 存储过程是 MySQL 中一个非常强大和有用的功能,它可以提高数据库的执行速度,减少数据库开发人员的工作量,并提高安全性。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助