视图
介绍:
视图(view)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
简单理解即为:视图=一条查询语句
语法:
创建:
Create [or replace] view view_name as select id,name from table_name where id
查询:
查看创建视图的语句:show create view view_name;
查看视图数据:select * from view_name;
修改:
方法1:Create or replace view view_name as select id,name from table_name where id
方法2: alter view view_name as select id,name from table_name where id
删除:
Drop view [if exit] view_name;
视图的检查选项:
当使用with check option 子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如插入,更新,删除,以使其符合视图的定义。MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保障一致性。为了确定检查的范围,mysql提供了两个选项:cascaded和local,默认值为cascaded(级联)
local则根据上下语句是否有检查选项,若无则不检查
视图更新规则
要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项,则该视图不可更新:
1.聚合函数或窗口函数(sum(),min(),max(),count()等)
2.DIstinct
3.Group by
4.Having
5.Union或者Union all
作用:
1.简化操作
2.安全(权限控制)
3.数据独立
案例:
创建一张视图,只能看到tb_user的基本信息
create view view_tb_user as select id,name,age,birthday from tb_user;
select * from view_tb_user;
创建一张三表联查的视图
create view tb_students as select s.name, sc.no, c.name from student s ,student_c