MySQL入门很简单-学习笔记 - 第 8 章 视图

8.1、视图简介

视图由数据库中的一个表,视图或多个表,视图导出的虚拟表。其作用是方便用户对数据的操作。

 

8.2、创建视图

必须要有CREATE VIEW 和 SELECT 权限

SELECT select_priv, create_view_priv from mysql.userWHERE user='root';

 

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

VIEW  视图名  [ ( 属性清单 ) ]

AS SELECT语句

[ WITH  [ CASCADED | LOCAL ]  CHECK OPTION ] ;

 

ALGORITHM参数表示视图选择的算法

UNDEFINED 未指定,自动选择

MERGE 表示将使用视图的语句和视图定义合并起来,使得视图定义的某一部分取代语句的对应部分

TEMPTABLE 表示将视图的结果存入临时表,然后使用临时表执行语句

LOCAL参数表示更新视图时要满足该视图本身定义的条件即可;

CASCADED参数表示更新视图时要满足所有相关视图和表的条件,默认值。

使用CREATE VIEW语句创建视图时,最好加上WITH CHECK OPTION参数和CASCADED参数。这样,从视图上派生出来的新视图后,更新新视图需要考虑其父视图的约束条件。这种方式比较严格,可以保证数据的安全性。

 

create viewdepartment_view1 as

  select * from department;

 

create viewdepartment_view2 (name, function, localtion) as

  select d_name, function, address fromdepartment;

 

createalgorithm=merge view worker_view1(name,department, sex, age, address) as

  select name, department.d_name,sex,2009-birthday, address from worker, department whereworker.d_id=department.d_id

  with local check option;

 

8.3、查看视图

必须要有SHOW VIEW的权限

 

DESCRIBE|DESC  视图名 ;

SHOW  TABLE STATUS  LIKE  ‘视图名’ ;

SHOW  CREATE VIEW  视图名;

SELECT  *  FROM  information_schema.views ;

 

8.4、修改视图

CREATE OR REPLACE | ALTER [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ]

VIEW  视图名  [ ( 属性清单 ) ]

AS SELECT语句

[ WITH  [ CASCADED | LOCAL ]  CHECK OPTION ] ;

语法和CREATE VIEW基本一样

 

8.5、更新视图

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为是视图是一个虚拟表,其中没有数据。通过视图更新时,都是转换到基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。

原则:尽量不要更新视图

语法和UPDATE语法一样

 

哪些视图更新不了:

1、视图中包含SUM(),COUNT()等聚焦函数的

2、视图中包含UNION、UNION ALL、DISTINCT、GROUPBY、HAVING等关键字

3、常量视图

         CREATEVIEW view_now AS SELECT        NOW()

4、视图中包含子查询

5、由不可更新的视图导出的视图

6、创建视图时ALGORITHM为TEMPTABLE类型

7、视图对应的表上存在没有默认值的列,而且该列没有包含在视图里

8、WITH[CASCADED|LOCAL] CHECK OPTION也将决定视图是否可以更新

         LOCAL参数表示更新视图时要满足该视图本身定义的条件即可;

         CASCADED参数表示更新视图时要满足所有相关视图和表的条件,默认值。

 

8.6、删除视图

删除视图时,只能删除视图的定义,不会删除数据

用户必须拥有DROP权限

DROP  VIEW  [IF EXISTS]  视图名列表  [ RESTRICT | CASCADE]

 



Google Project 完整PDF下载


MySQL入门很简单-学习笔记 - 索引页

MySQL入门很简单-学习笔记 - 第1 章 数据库概述

MySQL入门很简单-学习笔记 - 第 2 章 Windows平台下安装与配置MySQL

MySQL入门很简单-学习笔记 - 第 4 章 MySQL数据类型

MySQL入门很简单-学习笔记 - 第 5 章 操作数据库

MySQL入门很简单-学习笔记 - 第6章 创建、修改和删除表

MySQL入门很简单-学习笔记 - 第7章 索引

MySQL入门很简单-学习笔记 - 第 8 章 视图

MySQL入门很简单-学习笔记 - 第 9 章 触发器

MySQL入门很简单-学习笔记 - 第10章 查询数据

MySQL入门很简单-学习笔记 - 第11章 插入、更新与删除数据

MySQL入门很简单-学习笔记 - 第13章 MySQL函数

MySQL入门很简单-学习笔记 - 第14章 存储过程和函数

MySQL入门很简单-学习笔记 - 第15章 MySQL用户管理

MySQL入门很简单-学习笔记 - 第16章 数据备份与还原

MySQL入门很简单-学习笔记 - 第17章 MySQL日志

MySQL入门很简单-学习笔记 - 第18章 性能优化


Google Project 完整PDF下载


Google Project 完整PDF下载


MySQL入门很简单-学习笔记 - 索引页

MySQL入门很简单-学习笔记 - 第1 章 数据库概述

MySQL入门很简单-学习笔记 - 第 2 章 Windows平台下安装与配置MySQL

MySQL入门很简单-学习笔记 - 第 4 章 MySQL数据类型

MySQL入门很简单-学习笔记 - 第 5 章 操作数据库

MySQL入门很简单-学习笔记 - 第6章 创建、修改和删除表

MySQL入门很简单-学习笔记 - 第7章 索引

MySQL入门很简单-学习笔记 - 第 8 章 视图

MySQL入门很简单-学习笔记 - 第 9 章 触发器

MySQL入门很简单-学习笔记 - 第10章 查询数据

MySQL入门很简单-学习笔记 - 第11章 插入、更新与删除数据

MySQL入门很简单-学习笔记 - 第13章 MySQL函数

MySQL入门很简单-学习笔记 - 第14章 存储过程和函数

MySQL入门很简单-学习笔记 - 第15章 MySQL用户管理

MySQL入门很简单-学习笔记 - 第16章 数据备份与还原

MySQL入门很简单-学习笔记 - 第17章 MySQL日志

MySQL入门很简单-学习笔记 - 第18章 性能优化


Google Project 完整PDF下载

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值