视图的创建与应用

视图是从一个或多个表中导出来的,它的行为与表非常相似,但视图是一个虚表。在视图中可以使用SELECT、INSERT、UPDATE和DELETE语句,对视图的操作最终都会转换对基本表的操作。
视图的概念:视图是原始数据库数据的一种转换,是查看表中数据的另一种方式。可以将视图看作一个移动的窗口,通过它可以看到想要的数据。

一.视图的作用

(1)简单化:看到的就是需要的。简化用户对数据的理解及操作。经常被查询的可以定义成视图,可以不用每次都设置查询条件。
(2)安全性:通过视图的用户只能查看和修改他们所能见到的数据。
(3)独立性:视图可帮助用户屏蔽真实表结构变化带来的影响。

二.视图分类

SQL Server的视图可分为三类,分别是:标准视图、索引视图和分区视图。
(1)标准视图:组合了一个或多个表中的数据。
(2)索引视图:索引视图是被具体化了的视图,即他已经经过计算并存储。索引视图可以显著提高某些类型查询的性能。
(3)分区视图:分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。

三.创建视图

(1)创建视图的语法规则

  • 视图定义中的SELECT子句不能包括下列内容:
    1. COMPUTE或COMPUTE BY子句。
    2. ORDER BY 子句,除非在SELECT语句的选择列表中也有一个TOP子句。
    3. INTO关键字。
    4. OPTION子句。
    5. 引用临时表或变量表。
CREATE VIEW view_name
AS
SELECT * FROM table
--单表创建视图
CREATE VIEW view_dept
AS
SELECT * FROM dept
--多表创建视图
CREATE VIEW view_dept
AS
SELECT * FROM dept d
RIGHT JOIN employee e ON d.d_no=e.dept_no 

(2)修改视图
修改视图的语法和创建视图的语法非常相似,就是将CREATE语句改为ALTER语句。

ALTER VIEW view_dept
AS
SELECT * FROM dept WHERE d_no<50

(3)重命名视图名称

--sp_rename 'old_name','new_name'
sp_rename 'view_dept','view_dept_employee'

(4)使用系统存储过程查看视图信息

sp_help view_dept_employee

四.通过视图更新数据

通过视图更新的时候都是转到基本表进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或删除记录。
通过视图更新数据的方法有三种,分别是INSERT、UPDATE、DELETE。通过视图更新数据需要注意以下三点。

  1. 修改视图中的数据时,不能同时修改两个或多个基本表。
  2. 不能修改视图中通过计算得到的字段。
    3.执行UPDATE或DELETE命令时,无法用DELETE命令删除数据,若使用UPDATE命令则应当与INSERT命令一样,被更新的列必须属于同一个表。
--更新
UPDATE view_dept SET d_name = 'gou' WHERE d_no=50
--插入
INSERT INTO view_dept VALUES(60,'SSSS','DongGuan')
--删除
DELETE FROM view_dept WHERE d_no=60

五.删除视图

--语法
DROP VIEW view_name
DROP VIEW view_dept
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容