数据库知识总结—使用视图:
视图的定义与特点:
- 定义:视图是虚拟的表,不包含实际的数据,只包含动态检索数据的查询。
- 特点:
- 重用SQL:可以方便地重用已编写的复杂查询。
- 简化操作:简化复杂的SQL操作,无需了解基础查询细节。
- 部分使用:可以使用表的组成部分而非整个表。
- 数据保护:通过授予用户表的特定权限来保护数据。
- 数据格式化:可以更改数据的格式和表示。
视图的创建与使用规则:
- 创建:使用CREATE VIEW语句创建视图。
- 查看:使用SHOW CREATE VIEW viewname;查看创建视图的语句。
- 删除:使用DROP VIEW viewname;删除视图。
- 更新:
- 可以先删除再创建,或直接使用CREATE OR REPLACE VIEW更新视图。
- 并非所有视图都是可更新的,如包含分组、联结、子查询等的视图通常不可更新。
视图的应用:
- 隐藏复杂SQL:通过视图隐藏复杂的、通常涉及联结的SQL查询。
- 数据格式化:利用视图重新格式化检索出的数据。
- 数据过滤:使用视图过滤不需要的数据,如过滤没有电子邮件地址的客户。
- 计算字段:视图可以简化计算字段的使用,如计算特定订单中每种物品的总价格。
视图的限制:
- 视图必须唯一命名。
- 视图不能索引,也不能有关联的触发器或默认值。
- 视图中的ORDER BY子句在视图本身中不起作用,会被外部查询的ORDER BY覆盖。
- 视图主要用于数据的检索,而不用于更新,特别是当视图定义中包含某些特定操作时。
总结:视图为虚拟的表,提供了一种MySQL的SELECT语句层次的封装,用于简化数据处理、重新格式化基础数据或保护基础数据。然而,视图的使用也需遵循一定的规则和限制。