视图也就是虚表,视图的存储结构里没有数据,只有结构。其余所以的操作基本与表相似。
视图的创建
create view <视图名> (列名) as <子查询> [with check option]
子查询中的order by
排序是没有意义的 with check option
的作用:当操作者向这个视图加入不符合子查询结果的数据时,数据库会拒绝添加,可以理解为不能加入你查不到的结果。使用这个语句可以增加数据库的安全性,避免越权访问。
如果要通过视图来更新表的数据,视图必须满足如下条件:
-
视图只涉及一张表。
-
表中的所有非空字段,视图都有添加。
MySQL中修改视图定义的语句
也可以拿来反复创建视图
create or replace view <视图名> (列名) as <子查询> [with check option]
视图的作用
-
可以让访问者多角度的看待同一个数据库。 如:老师和学生看待教务系统中的数据。
-
为重构数据库提供独立性。 如:当数据库被迫分表时,可以通过视图来维持数据库对外的独立性。
-
视图可以控制行列的访问权限,安全性高。
-
是复杂的查询变得清晰。