目录

1、视图介绍

2、创建、查询、修改、删除视图

2.1 创建视图

2.2 查询视图

2.3 修改视图

2.4 删除视图

3、视图的检查选项

3.1 CASCADED 检查选项

3.2 LOCAL 检查选项

4、视图的更新

5、视图的作用

(1)简单

(2)安全

(3)数据独立

1、视图介绍

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。

通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上

2、创建、查询、修改、删除视图

2.1 创建视图

CREATE  [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED | LOCAL] CHECK  OPTION]

2.2 查询视图

查看创建视图语句:SHOW CREATE VIEW 视图名称

查看视图数据:SELECT * FROM 视图名称......

2.3 修改视图

方式一:CREATE  [OR REPLACE]  VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED | LOCAL] CHECK OPTION]

方式二:ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED | LOCAL] CHECK OPTION]

2.4 删除视图

DROP VIEW [IF EXISTS] 视图名称 [,视图名称]......

3、视图的检查选项

当使用WITH CHECK OPTION子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如 插入、更新、删除、以及其符合视图的定义。MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql提供了两个选项:

CASCADED 和 LOCAL ,默认值为 CASCADED。

3.1 CASCADED 检查选项

① create view v1 as select id,name from student where id <= 20

② create view v2 as select id,name from v1 where id >= 10 with cascaded check option;

③ create view v3 as select id,name from v2 where id <=15

(1)当操作v1这个视图时:由于创建视图语句①没有添加检查选项,不会检查where条件

(2)当操作v2这个视图时:由于创建视图语句② 添加了with cascaded check option 检查选项,它会检查当前操作是否满足v2视图中的where条件,由于v2视图依赖v1视图 ,相当于在v1视图上也加上了with cascaded check option,所以它也会检查当前操作是否满足v1中的where条件

(3)当操作v3这个视图时:由于创建视图语句③没有添加检查选项,不会检查where条件,但是依赖v2视图,去检查v2视图,由于创建视图语句② 添加了with cascaded check option 检查选项,它会检查当前操作是否满足v2中的where条件,由于v2视图依赖视图v1 ,相当于在v1视图上也加上了with cascaded check option,所以它也会检查当前操作是否满足v1中的where条件

3.2 LOCAL 检查选项

④ create view v4 as select id,name from student where id <= 20

⑤ create view v5 as select id,name from v4 where id >= 10 with local check option;

⑥ create view v6 as select id,name from v5 where id <=15

(1)当操作v4这个视图时:由于创建视图语句④没有添加检查选项,不会检查where条件

(2)当操作v5这个视图时:由于创建视图语句⑤ 添加了with local check option 检查选项,它会检查当前操作是否满足v5视图中的where条件,因为v5视图依赖v4视图 ,所以要去检查v4视图,由于v4视图没有定义检查选项,所以它不会检查当前操作是否满足v4中的where条件

(3)当操作v6这个视图时:由于创建视图语句⑥没有添加检查选项,不会检查where条件,但是依赖v5视图,去检查v5视图,由于创建视图语句⑤ 添加了with local check option 检查选项,它会检查当前操作是否满足v5视图中的where条件,因为v5视图依赖v4视图 ,所以要去检查v4视图,由于v4视图没有定义检查选项,所以它不会检查当前操作是否满足v4中的where条件

4、视图的更新

要使视图可更新,视图中的行于基础表中的行之间必须存在一对一的关系。如果视图包含一下任何一项,则该视图不可更新:

1. 聚合函数或窗口函数 (SUM()、MIN()、MAX()、COUTN()等)

2.DISTINCT

3. GROUP BY

4. HAVING

5. UNION 或者 UNION ALL

5、视图的作用

(1)简单

视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

(2)安全

数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们能看到的数据

(3)数据独立

视图可以帮助用户屏蔽真实表结构变化带来的影响。(屏蔽了基表的变化对业务的影响)

MySql数据库: 视图用法以及作用相关推荐

  1. mysql数据库视图

    mysql数据库视图和储存过程 先说说数据库视图, 视图,注意它是一张 虚拟表,是一张仅存在于咱自己概念上的表,即数据库中看不到但只要你创建他就存在的一张表, 是你自定义的一个表或多个表中导出来的表, ...

  2. mysql游标的用法及作用_Mysql 游标的用法及其作用

    mysql 游标的用法和作用,话不多说,这个是网上看到的例子,简答粗暴. 例子: 当前有三张表a.b.c其中a和b是一对多关系,b和c是一对多关系,现在需要将b中a表的主键存到c中: 常规思路就是将b ...

  3. 【第八篇】MySQL数据库视图详解

    1.1 视图概述 视图是一个虚拟表,其内容由 select查询语句定义.和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致.视图中的数据是在使用视图时动态生成,视图中的数据都存储在基表 ...

  4. mysql数据库视图_MySQL数据库应用总结(九)—MySQL数据库视图的操作

    SQL语法预览: 创建视图:[create [or replace] [algorithm={undefined | merge | temptable}] view 视图名称(属性列) as sel ...

  5. JDBC连接mysql数据库及PrepareStatement的作用及原理

    java连接mysql数据库,首先需要引入mysql-connection-java.jar包,前面的博客中给大家分享了mysql-connection-java-5.1.28.jar包,有需要的自行 ...

  6. 对于mysql数据库视图心得_MySQl心得4--5--数据库视图

    1. 修改.查询.删除记录时都会提示多少条记录被影响,但建表不会提示.当表的数据修改后反映到视图. 修改.查询.删除视图的命令跟建表时的一样. 视图是从一个或多个表(或视图)导出的表.视图是数据库的用 ...

  7. MySql数据库explain用法示例_mysql explain用法学习

    本节内容: mysql中explain用法 如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一 ...

  8. mysql数据库中count的作用_MySQL数据库中的count的用法

    1.概念 在开发系统的时候,可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数.这时候你可能会想,一条select count(*) from t 语句不就解决了吗? 但是,会发现随着系 ...

  9. Mysql数据库——高级用法(视图、事务、索引、自连接、用户管理)

    视图 视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性. ...

最新文章

  1. 【机器视觉案例】(6) AI视觉,距离测量,自制AI小游戏,附python完整代码
  2. python条件控制语句要注意什么_关于Python条件控制怎么用?要注意什么?
  3. 自定义SeekBar 实时显示百分比进度
  4. 企业实战|企业FTP搭建
  5. php soapclient 超时,PHP SoapClient超时
  6. CSS —— 多媒体查询
  7. Kubernetes 一键部署实践
  8. 项目管理中的配置管理
  9. MySQL定时备份并清理
  10. 《微积分:一元函数微分学》——导数公式
  11. vue中使用ajax全局配置,jQuery和vue 设置ajax全局请求
  12. 康复期需注意什么?一组手账告诉你
  13. 经济形势这么差为什么要创业——Why to Start a Startup in a Bad Economy
  14. JDK 17:Java 17 中的新特性
  15. python 筛选重复数据和不重复数据_[Python] Pandas 对数据进行查找、替换、筛选、排序、重复值和缺失值处理...
  16. idea中java文件都不能运行变成橙色文件
  17. 增长黑盒 | 谈到“增长”,我们到底该研究什么?
  18. 【Android-Broadcast】广播的权限
  19. 【codeforces】Round #269 ABCD
  20. 基于数据安全的风险评估-脆弱性识别

热门文章

  1. 京东数科金融科技生态揭开面纱 百亿翱翔计划正式官宣
  2. 软磁材料交流测量装置TD81系列软磁交流测试装置系统
  3. 17、江科大stm32视频学习笔记——USART串口协议和USART串口外设
  4. 前端知识-Web标准
  5. python 监控文件夹存入的文件_文件夹 python
  6. 预告:达·芬奇密码全球首映!
  7. 笔记本电脑没有声音怎么办?5个必会方法分享
  8. 常见的浏览器兼容性问题总结(有自己遇到的还有网上大神总结的)
  9. 2022年了,社区团购还能走多远?
  10. table如何设置边框