第二十二章-使用视图

22.1视图

视图是虚拟的表。

作为视图,它不包含表中应该有的任何列或数据,它包含的是一个SQL查询(与上面用以正确联结表的相同的查询)。

22.1.1为什么使用视图

在视图创建之后,可以用与表基本相同的方式利用它们。

视图仅仅是用来查看存储在别处的数据的一种设施。 视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。 在添加或更改这些表中的数据时,视图将返回改变过的数据。

使用视图存在性能问题。

22.1.2视图的规则和限制

  • 视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图
  • 视图不能索引,也不能有关联的触发器或默认值
  • 视图可以和表一起使用。例如,编写一条联结表和视图的SELECT语句

22.2使用视图

  • 视图用CREATE VIEW 语句创建
  • 使用SHOW CREATE VIEW viewname; 来查看创建视图的语句
  • 用DROP删除视图,其语法为DROP VIEW viewname;
  • 更新视图时,可以先用DROP再用CREATE ,也可以直接用CREATE OR REPLACE VIEW ,如果想要更新的视图不存在,则第二条语句会创建一个视图,如果要更新的视图存在,则第二条语句会替换原有视图。

22.2.1利用视图简化复杂的联结

查询通过视图查询数据库中的数据。

创建可重用的视图,的方法之一就是扩展视图的范围。

22.2.2 用视图重新格式化检索出的数据

将查询出来的格式化数据创建视图,以后需要的话,直接从视图中查询数据。

22.2.3 用视图过滤不想要的数据

也是先通过一个查询过滤不想要的数据,然后以这个查询结果来创建视图,然后再在这个视图上进行查询。

22.2.4 使用视图与计算字段

将原本在一个查询中进行的计算,分类到生成视图的查询和视图的查询中,从而简化查询。

22.2.5 更新视图

通常,视图是可更新的(INSERT、UPDATE和DELETE),更新一个视图将更新基表。

如果视图定义了以下操作,则不能进行视图更新:分组(使用GROUP BY和HAVING);联结;子查询;并;聚集函数(Min()、Count()、Sum()等);DISTINCT;导出(计算)列

实际上视图主要用于数据检索。

22.3小结

视图为虚拟的表。它们包含的不是数据而是根据需要检索数据的查 询。视图提供了一种MySQL的SELECT语句层次的封装,可用来简化数据 处理以及重新格式化基础数据或保护基础数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值