源无极

导航

 

视图:

也被称为虚拟的表,可以查询表中的数据,如果数据库表修改了,

不用修改前端 的代码,只需要修改视图即可

1)对于sql语句的封装

2)不在数据库中真实存在,而是引用视图时动态生成

例题疑问:

下面有employee表(含有员工编号和姓名)和office表(含有编号和部门),现在公布姓名和部门。

 

 

 

 

一、创建视图的语法格式

 

CREATE  [ ALGORITHM={UNDEFINED | MERGE | TEMPTABLE} ]

VIEW  view_name  AS 

SELECT  column_name(s)  FROM  table_name 

[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

 

 

ALGORITHM :可选参数, 视图算法

 

UNDEFINED: mysql自动选择算法

MERGE:使用的视图语句与视图定义合并起来

TEMPTABLE: 结果存入临时表,然后用临时表执行语句。

view_name : 视图名称

 

column_name(s): 指查询的字段,也就是视图的名称

 

WITH CHECK OPTION:表示视图在更新时保证在视图的权限范围内

 

CASCADED :默认值 更新视图时要满足所有相关视图和表的条件,才进行更新

LOCAL:表示更新视图时满足该视图本身定义的条件即可更新。

 

(一)employee表上创建一个名称为e_view的视图

 

 2.还可以查看这个视图结构

 

 

视图结构和employee数据表结构一致

默认情况下:由select中的列名用作视图的列名

 

(二)office表上创建一个名称为office_view的视图

 

 

2.视图结构

 

 

(三)在mysql中可以在两个或是两个以上的表中创建视图

解决第一个案例的问题

 

 

 

好处就是,通过视图很好的保护了基本表中的数据

 

 

二、查看视图的基本信息

语法

SHOW   TABLE   STATUS  LIKE '视图名'

 

 

表

 

 

对比:上面就是视图和表的基本信息的区别

三、查看视图详细信息

语法

SHOW   CREATE  VIEW  视图名

 

 

 

 

总结

 

优点及缺点

优点

简单化,数据所见即所得

安全性,用户只能查询或修改他们所能见到得到的数据

逻辑独立性,可以屏蔽真实表结构变化带来的影响

缺点

性能相对较差,简单的查询也会变得稍显复杂

修改不方便,特变是复杂的聚合视图基本无法修改

 

posted on 2019-09-29 00:43  源无极  阅读(4753)  评论(0)    收藏  举报