代码改变世界

第二十二章 使用视图

2016-12-19 19:45  szn好色仙人  阅读(168)  评论(0编辑  收藏  举报
1.视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询

2.视图的应用场景:
A:重用SQL语句
B:简化复杂的sql语句
C:使用表的组成部分而不是表
D:保护数据,可以给用户授予表的特定部分的访问
E:更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据

3.因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时所需的任一个检索。如果使用联结和过滤创建了复杂的视图或者嵌套了视图,可以导致性能很差

4.视图可以包含order by语句,但是如果从该视图检索数据的select语句也包含order语句,那么视图中的order语句将被覆盖。视图不能索引,也不能有关联的触发器或或默认值

5.使用create view来创建视图,使用show create view viewname来查看创建视图的语句。使用drop删除视图,语法为:drop view viewname。更新视图的时候可以直接drop后再create或者直接使用create or replace view

 

6.一般视图是可以更新的。更新一个视图将更新其基表。如果对视图增加或者删除行,实际上就是对基表进行增减行,当视图包含分组、联结、子查询、并、聚集函数、distinct、导出列时,将不可更新