文章目录
1 视图概述2 创建视图3 查询视图4 修改视图5 删除视图总结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 filesvalues(2,'干部','高级','李晓玉','女','LIXIAOYU@','010-5888888','123333','131212121','北京'),(5,'工人','中级','张明明','男','ZHANGMINGMING@','010-123123','8975675','137123671','北京'),(5,'工人','中级','王静','女','WANGJIN@','010-2131233','123123345','13712123123','北京'),(1,'干部','中级','张山','男','ZHANGSHAN@','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_mas select departid,name,sex from fileswhere sex='男'with check option
select * from v_sex_m
向v_sex_m视图插入departid为1,名字为小红红,性别为女的记录
insert into v_sex_mvalues(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_mas 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。