存储过程
定义:
存储过程是一组为了完成特定功能的SQL语句,是由一些SQL语句组成的代码块,这些代码块像方法一样实现一些功能(对单表或多表的增删改查),然后给代码块起一个名字,用到的时候再调用它。存储过程具有输入参数、输出参数和输入/输出参数,可以在数据库服务器上执行。
优点:
- 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度,效率要比T-SQL语句高。
- 当对数据库进行复杂操作时,可以用存储过程把这些复杂操作封装起来,与数据库提供的事务处理结合一起使用。
- 一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
- 存储过程可以重复使用,可减少数据库开发人员的工作量。
- 安全性高,可设定只有某些用户才具有对指定存储过程的使用权。
创建存储过程
声明分隔符和存储过程的基本语法:
在 MySQL 中,创建一个包含多个 SQL 语句的存储过程时,通常需要声明一个新的分隔符,因为默认的分隔符是 ;,而存储过程的主体部分可能包含多个 ;,会导致解析问题。
通过使用 DELIMITER 命令,可以更改分隔符,以便 MySQL 能正确地识别存储过程的开始和结束。
设置新的分隔符(例如 $$),然后在存储过程结束后恢复默认分隔符 ;
DELEMITER $$CREATE PROCEDURE procedure_name (parameters)
BEGIN-- 过程体
EDN $$DELIMITER ;
/* 参数类型
IN:输入参数,调用时传入。
OUT:输出参数,存储过程执行后传出。
INOUT:既是输入参数又是输出参数 */