视图是保存在数据库中的select查询,是一张虚拟表能够从多个表中提取数据,并以单个表的形式展现数据。
视图中不存放数据
数据存放在视图所引用的原始表中
一个原始表,根据不同用户的不同需求,可以创建N多个不同的视图
查询与视图有哪些异同点
不同点:
存储上:视图存储在数据库中,查询以sql文件形式保存
排序上:要排序必须有TOP关键字,查询无要求
安全上:视图可以加密,查询不可以
相同点:都是通过sql语句定义的
创建视图的方式
1,使用SSMS创建视图
2,通过T_SQL创建
语法:
create view view_name
as
<select语句>
使用T-SQL语句删除视图
if exists (select * from sysobjects
where name='view_name')
drop view view_name
例子:
1 --查看视图 2 select * from vw_User 3 4 --使用T_SQL语句创建视图 5 --【1】视图的内容来源于一张表 6 use E_Market 7 if exists(select * from sysobjects where name='vw_UserInfo') 8 drop view vu_UserInfo 9 go 10 create view vw_UserInfo --create view必须是批处理中的第一条语句 11 as 12 select UserId as 登录名, UserName as 姓名, Email as 邮箱, 13 UserAddress as 地址, Phone as 电话 from UserInfo 14 go 15 --查看视图 16 select * from vw_UserInfo 17 go 18 19 --[2]视图的内容来源于多张表,并且带查询条件 20 if exists(select * from sysobjects where name = 'vw_Commodity') 21 drop view vw_Commodity 22 go 23 create view vw_Commodity 24 as 25 select top 100 percent C.CommodityName as 商品的名称, S.SortName as 商品的类别,C.Amount as 库存量 from CommodityInfo as C 26 inner join CommoditySort as S on C.SortId=S.SortId 27 where S.SortName='图书音像' 28 order by C.Amount desc --如果要给视图排序必须要有关键字TOP 29 go