在SQL学习中遇到了视图与存储过程两个概念,粗略来看,两者有着很大的相似性,都类似于等待调用的函数,但是仍有一些区别。
原理:
- 存储过程是程序化的sql可以实现一般sql不能实现的功能。
- 如:先检索一个表得到一些数据,经过一定的编辑后更新到另外一个表中、这就可以用不带参数的存储过程实现
- 视图是虚拟表,不存储数据,存储的是sql,检索他的时候实际上是执行定义它的sql语句。
特性:
- 在没有外部的程序的情况下,存储过程也是可以执行完成一些操作的。
- 视图不占用实际的空间,是一个虚拟的中间过程。
优势:
- 视图
- 将用户限定在表中的特定行上。
- 将用户限定在特定列上。
- 将多个表中的列联接起来,使它们看起来象一个表。
- 聚合信息而非提供详细信息。
- 存储过程
- 可以在单个存储过程中执行一系列 SQL 语句。
- 可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
- 存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。
Ref : https://www.cnblogs.com/Eleanore/archive/2012/06/11/2545384.html