1 视图概述

视图就是将一个或多个表中的目标字段抽取出来形成的一个虚拟表。这个虚拟表和真实的表具有相同的功能。
视图的主要作用:
(1)简化数据操作
可以只将有用的数据展示给用户以供处理,而不用关心数据表中的结构,这样简化了数据处理的复杂性。
(2)安全访问机制
视图可以对用户访问的数据资源进行限定,可以控制用户对某些数据行或某些数据列进行操作。
(3)降低查询语句的复杂性
视图可以简化复杂查询的逻辑结构,将查询语句化繁为简。

2 创建视图

语法格式:
create view view_name as select 字段 from tb1 [WITH CHECK OPTION]

注意:
(1)如果加上WITH CHECK OPTION,则基于视图的更新和新增操作必须满足查询条件
(2)任意的SELECT语句,但是有些限制,如:不能使用INTO子句;不能在临时表或表变量上创建视图;只能在有Top *的查询中才能使用order by 等。

create view v_id_name 
as select departid,name from files

在这里插入图片描述
注:
files表的建表语句,如下:

create table files(
userid int primary key identity,
departid int null,
postname nvarchar(50) null,
duty nvarchar(50) null,
name nvarchar(50) null,
sex nvarchar(50) null,
email nvarchar(50) null,
tel nvarchar(50) null,
qq nvarchar(50) null,
phone nvarchar(50) null,
address nvarchar(50) null
)

files表的插入数据语句如下:

insert into files
values
(2,'干部','高级','李晓玉','女','LIXIAOYU@qq.com','010-5888888','123333','131212121','北京'),
(5,'工人','中级','张明明','男','ZHANGMINGMING@qq.com','010-123123','8975675','137123671','北京'),
(5,'工人','中级','王静','女','WANGJIN@qq.com','010-2131233','123123345','13712123123','北京'),
(1,'干部','中级','张山','男','ZHANGSHAN@qq.com','010-122134','2613786','13718912367','哈尔滨')


insert into files
(departid,name)
values
(1,'小红'),
(1,'小白'),
(1,'小蓝'),
(2,'大红'),
(2,'李静'),
(3,'张三')


insert into files 
(departid,postname,name,sex)
values
(3,'工人','小明','男');

在这里插入图片描述
建立files表男生的视图,并要求进行修改和插入操作时只对files表男生的信息进行操作,语句如下:

create view v_sex_m
as select departid,name,sex from files
where sex='男'
with check option
select * from v_sex_m

在这里插入图片描述
向v_sex_m视图插入departid为1,名字为小红红,性别为女的记录

insert into v_sex_m
values
(1,'小红红','女')

在这里插入图片描述
分析:
加上 with check option,则基于视图的更新和新增操作必须满足查询条件,where sex=‘男’,所以无法插入性别为女的记录。

3 查询视图

在sql server图形化界面和查询语句中,视图都可以当成普通表使用。

select * from v_sex_m

在这里插入图片描述

4 修改视图

语法格式:
ALTER VIEW view_name 字段 [ WITH ENCRYPTION]
AS 查询语句 [ WITH CHECK OPTION ]

alter view v_sex_m
as 
select top 1 name from v_sex_m

5 删除视图

语法格式:
drop view view_name

drop view v_sex_m

总结

1 视图就是虚拟表。基表中的数据发生变化,从视图中查询出的数据也随之改变。
2 创建视图。加上with check option,则基于视图的更新和新增操作必须满足查询条件。
3 查询视图。视图都可以当成普通表使用。
4 删除视图。语法格式:drop view view_name。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐