概念

存储过程( Stored Procedure ) 就是一条或多条 SQL 命令的集合,可类比为批处理文件、编程中的简单程序

作用

  • 提高执行性能: 存储过程只是在第一次执行语法分析、编译、执行,以后都是最结果进行调用
  • 减轻网络负担: 客户端只要传递给数据库必要的参数即可,无需多次传递 SQL 命令,减轻了网络负担
  • 黑匣子化: 应用程序不用考虑存储过程的内部详细处理,只需调用即可,同时避免了非授权用户对数据的访问,保证了数据的安全

语法

创建存储过程

  1. CREATE PROCEDURE 过程名([IN|OUT|INOUT]参数名: 参数类型)[存储特性]
  2. BEGIN
  3. 过程体
  4. END ;

删除存储过程

  1. DROP PROCEEDURE [IF EXIST] 过程名 ;

案例

  1. # 创建视图
  2. CREATE OR REPLACE VIEW myview
  3. AS
  4. SELECT EMPNO, ENAME, JOB, DEPTNO FROM EMP WHERE DEPTNO = 20
  5. WITH CHECK OPTION ;
  6. # 插入数据
  7. INSERT INTO myview (EMPNO, ENAME, JOB, DEPTNO) VALUES (9999, 'KUMA', 'CLERK', 20) ;
  8. # 插入会报错的数据,体现 WITH CHECK OPTION 作用
  9. INSERT INTO myview (EMPNO, ENAME, JOB, DEPTNO) VALUES (9999, 'KUMA', 'CLERK', 30) ;