如果说视图是对SELECT这样的SQL语句封装,那么存储过程就是一条或多条SQL语句的集合。这些SQL语句,可能包括SELECT,UPDATE或是INSERT,DELETE。
通常这些SQL语句的集合代表一个完整的操作,同时这个SQL语句可能包含着某些逻辑(类似于if……else),也就是说有些语句可能执行,可能不执行。
为什么要使用?
如果不使用存储过程,在多个需要这一完整操作的处理中,或应用中,我们每次都需要编写一条条的SQL语句来完成一个完整的操作。所以存储过程中有以下作用:
1.简化操作。
把处理封装在容易使用的单元中,简化复杂的操作。
2.安全:防止错误
开发人员都使用相同的处理步骤来完成某一完整操作,保证了数据的完整性。如果步骤很多,每个开发人员自己编写出错的可能性就会增大。
3.简化对变动的管理。
如果表名,列名,业务逻辑(如:操作中的具体步骤变了),只需要更改存储过程的代码。
4.高性能:比单独的SQL语句要快。
5.灵活:能编写功能更强更灵活的代码。
缺点
1.比编写基本的SQL语句复杂
2.可能没有创建存储过程的权限。