1.1 什么是视图?
视图为虚拟的表,并不包含数据。视图只包含使用时动态检索数据的查询,返回的数据是从其他表中检索出来的。
在视图创建之后,可以用与表基本相同的方式使用它。可以对视图执行查询、过滤和排序等操作,也可以进行联结到其他视图或表。
1.2 为什么使用视图?
视图提供了一种查询语句层次的封装,可以用来简化数据处理、格式化基础数据或保护基础数据。视图的常见应用有:
①重用SQL语句,简化复杂的SQL操作。
②更改数据格式和表示。
③过滤不需要的数据。
④保护数据,可以给用户授予表的特定部分的访问权限,而不是整个表的访问权限。
1.3 视图有哪些规则与限制?
①视图必须唯一命名,不可与别的视图或表重名。
②可创建的视图数目没有限制,视图可嵌套,即从其他视图中检索数据的查询来构造一个视图。
③视图的中可以使用ORDER BY ,但如果使用该视图的查询语句中也含有ORDER BY,则视图中的会被覆盖;如果同时使用的是WHERE子句,则会两组子句自动组合。
④视图不能索引,也不能有关联的触发器或默认值。
⑤创建视图必须有足够的访问权限。
1.4 视图能否更新?
视图本身不包含数据,返回的数据是从其他表中检索出来的,当更改这些表中的数据时,视图将返回更改后的数据。(视图不包含数据,每次使用视图时都会处理查询执行时所需的任一个检索)
视图是可更新的,但上述有提到视图中的数据来源于其他表,那么对视图进行更新,实际上是对其基表进行更新。
视图更新有很多限制,视图的主要作用是用于数据检索,而不是更新数据。
二、视图的创建
①创建 CREATE VIEW name AS ...
②查看 SHOW CREATE VIEW name
③删除 DROP VIEW name
④更新 可以先用DROP再用CREATE;或者直接用CREATE OR REPLACE VIEW,如果要更新的视图不存在则会创建一个视图,否则会替换原视图。