Sql 视图
1.定义:视图是由多张实体表联合查询后,组成的一张不含任何数据的虚拟表,存在表名,字段列。
2.为什么使用视图:
视图保存的是select语句,可以简化用户操作,将频繁使用的查询语句保存成视图,可以不用每次都重新写Sql语句。在创建好视图后,可以将视图和其他实体表一样,用Select语句进行查询数据。
3.1视图的写法:
创建视图使用 Create view, 视图名称 v_grade.
CREATE VIEW v_grade
AS
SELECT id,avg(mark) FROM grade
WHERE sex='男'
GROUP BY id
HAVING avg(mark)>80
3.2使用视图
可以使用select ,对已经创建的视图 v_grade进行数据查询
SELECT v_id,v_avg FROM v_grade
WHERE v_id='001'
3.3 删除视图
DROP VIEW v_grade;
3.4视图数据增加和修改
视图也可以使用INSERT,UPDATE进行数据的增和改,但是需要符合以下条件:
(1)视图FROM子句只有一张表;
(2)未使用GROUP BY子句,未使用HAVING子句
在对视图新增和修改数据后,视图对应表中的数据同步修改。
视图在一个实体表的基础上筛选而得,那么给视图增加一条数据的语句执行后,实体表也会同步增加一条数据。以此保证数据的一致性。
4.视图的优缺点:
优点:
1.安全性,视图可以让程序员或者用户,看到指定的数据,而非完整的数据,避免敏感数据的暴露。
2.简单,易维护。视图可以简化用户对数据的理解,也可以简化他们的操作。
3.逻辑数据独立性。视图可以使应用程序和数据表在一定程度上独立。如果没有视图,应用是建立在表上的,有了视图后,程序可以建立在视图之上,将程序与数据库表分割开来。
缺点:
1.消耗性能:Sql server把视图的查询转变成基础表的查询,如果视图是个复杂的多表查询组成,即使视图的简单查询,Sql server也把它变成复杂的结合体进行查询,需要花费一定的时间。
2.修改限制:当用户需要修改视图的某些数据时,Sql server将它转化为对基础表的数据修改。对于简单视图,这是很方便的。对于较复杂的视图,可能是不可修改的。