首页 > 技术文章 > 视图的概述

zhangxudong-cnblogs 2019-05-23 21:16 原文

视图是保存在数据库中的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

 

推荐阅读