mssql sqlserver 表与视图的区别说明


摘要:
下文讲述在sqlserver中表与视图的区别


表与视图区别:
1.1 表是存在物理记录的集合,而视图只是一串sql脚本;
1.2 表需占用物理空间,而视图理论上可以不占用物理空间;
1.3 视图可以将多个表呈现给用户,而表只可以呈现自身;
1.4 视图可以随意删除和重建,而表的删除会导致数据丢失;
—————————————————–
表与视图之间的联系:
2.1 视图是建立在表的基础之上的一种结构,视图中的数据可以来源于多张表;
2.2 表是实际存在的不依附视图;
2.3 使用视图可以增强表的安全性;
—————————————————–
例:
创建视图

 ------新建一个视图,限定只展示表A中A.A =1的行数据,
 并只返回列 A,B两列
 create view vw_tmp 
 as 
 select A.A,A.B from A where A.A =1 

 ------视图中子查询应用
create view vw_tmp 
 as 
 select A.A,A.B from A where
 A.A >(select avg(b.qty) from B )
 
 -----视图中群组和聚合
create view vw_tmp 
 as 
 select name,sum(qty) as qtyAll,
  avg(qty) as avgQty from B
  group by name 

----视图更新方法  将create关键字替换为alter关键字
alter view vw_tmp 
 as 
 select name,sum(qty) as qtyAll,
  avg(qty) as avgQty from B
  group by name 

 
---删除视图的方法
drop view vw_tmp