前言
存储过程是一组为了完成特定功能的SQL语句集,其实质上就是一段存储在数据库中的代码,它可以由声明式SQL语句(如CREATE、UPDATE和SELECT等语句)和过程式SQL语句(如IF…THEN…ELSE控制结构语句)组成。这些语句经编译后存储在数据库中。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或者多个结果集以及返回值
芝士
为什么要使用存储过程?
- 良好的封装性
存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。即在存储过程中可以在同一位置改变封装的业务规则和策略,所有的客户端可以使用相同的存储过程来确保数据访问和修改的一致性。 - 存储过程具有安全性和所有权链接,以及可以附加到它们的证书
用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。 - 存储过程可作为一种安全机制来确保数据库的安全性和数据的完整性
即使是没有访问存储过程引用的表或者视图的权限的用户,也可以被授权执行该存储过程。 - 存储过程允许模块化程序设计
存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维