sql 视图 存储过程 的区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 视图 存储过程 的区别?相关的知识,希望对你有一定的参考价值。
视图是基于T-SQL语句生成的虚拟表,通常生成视图使用的都是查询命令,主要用于简化用户查询数据的过程而存储过程是事先保存好的要执行的SQL命令的序列,可以执行更多的命令,能帮助管理员或者用户自动的完成某些操作~并且可以在其他程序中调用 参考技术A 视图是view是假表,存储过程是编写好的处理过程
SQL-视图与存储过程
目录
1.视图
1.1 什么是视图?
- 视图实际上是一张虚拟表,其本身不存储数据。
- 相当于一张表或多张表的数据结果集
- 数据表复杂的情况下,可以把查询结果放在虚拟表中,提升效率
1.2如何创建、更新、删除视图
-
创建
CREATE VIEW view_name AS SELECT column1 FROM table WHERE condition
-
嵌套视图
- 把视图当成table字段即可
-
更新
ALTER VIEW view_name AS SELECT column1, column2 FROM table WHERE condition
- 比上述创建时多一列
-
删除
DROP VIEW view_name
- 其中SQLite不支持视图的修改,只支持只读视图。
1.3 如何使用视图简化SQL操作
- 利用视图完成复杂的连接
- 实际上就是把复杂的连接得到的数据集直接当作视图
- 利用视图对数据进行格式化
- 利用视图与计算字段
1.4 视图和临时表的区别?
- 视图是虚拟表,本身不存储数据,我们一般把视图用于查询
- 临时表是真实存在的数据表,不利于长期存放数据,只为当前连接存在,连接关闭,临时表会自动释放。
2.存储过程
2.1 什么是存储过程
- SQL语句的封装,使用就像使用函数一样,直接调用其名字即可
- 存储过程由SQL语句和流控制语句共同组成
2.2 如何创建一个存储过程
-
创建
CREATE PROCEDURE 存储过程名称(参数列表) BEGIN SQL END
-
删除
DROP PROCEDURE
-
修改
ALTER PROCEDURE
-
DELIMITER
- 在MYSQL中,
;
代表结束,但是我们在存储过程中表示一个语句,使用DELIMITER将结束符定义为其他符号而不是;
- 在MYSQL中,
-
存储过程的三种参数类型
- IN
- OUT
- INOUT
2.3 流控制语句都有哪些,如何使用它们?
- BEGIN END
- DECLARE:声明变量
- SET:为变量赋值
- SELECT INTO:把查询的结果放到变量中
- IF THEN ENDIF
- CASE
- LOOP、LEAVE、ITERATE:LOOP堪称for,LEAVE堪称break,ITERATE看成continue
- WHILE DO...END WHILE:
2.4 各大公司如何看待存储过程?在实际工作中,我们该如何使用存储过程
-
大公司推荐使用存储过程,如微软、IBM,基于以下优点
- 一次编译多次使用;提升SQL执行效率
- 减少开发工作量
- 安全性强,可以设置对用户的使用权限
- 减少网络传输量:多条SQL需要多次连接数据库,而存储过程只需要一次
-
阿里不推荐使用
- 可移植性差,不能跨数据库移植
- 调试困难
- 版本管理困难
- 不适合高并发场景。
以上是关于sql 视图 存储过程 的区别?的主要内容,如果未能解决你的问题,请参考以下文章