当前位置: 首页 > news >正文

mysql数据库之视图

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

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

一、视图的操作语法。

1、创建视图。

create [or replace] view 视图名称[(列名列表)] as select语句 [with[cascaed | local] check option]

示例:

create or replace view stu_v)_1 as select id,name from student where id <= 10;

2、查询视图。

#查看创建视图语句
show create view 视图名称;
#查看视图数据
select * from 视图名称......;

示例

#查看创建视图语句
show create view stu_V_1;
#查看视图数据
select * from stu_V_1 where id < 3;

3、修改视图。

方式一:

create [or replace] view 视图名称[(列名列表)] as select语句 [with[cascaed | local] check option]

  方式二:

alter  view 视图名称[(列名列表)] as select语句 [with[cascaed | local] check option]

 

 4、删除。

drop view [if exists] 视图名称 [,视图名称]...

二、视图的检查选项。

1、cascaded

基于一个视图去创建另一个视图,加上with cascaded option判断两个条件。

第三个视图不加判定条件,会往前面找。

 

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

 2、local

是否定义检查条件,没条件就不检查,有条件就检查。

 三、视图的更新条件。

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

1、聚合函数或窗口函数(SUM())、MIN()、MAX()、COUNT()等。

2、distinct

3、group by

4、having

5、union或者union all

示例

 四、视图的作用。

1、操作简单。

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

2、操作安全。

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

3、数据独立。

视图可帮助用户屏蔽真实表结构变化带来的影响 。

五、案例。

屏蔽字段

 多表联查

把多表联查封装到视图,后续的操作中直接查询创建的视图即可 

 

http://www.lryc.cn/news/26695.html

相关文章:

  • 数据库事务详解
  • Nessus: 漏洞扫描器-网络取证工具
  • 操作系统实战45讲之现代计算机组成
  • Simple Baselines for Image Restoration
  • Python数据可视化:局部整体图表可视化(基础篇—6)
  • CSDN新星计划新玩法、年度勋章挑战赛开启
  • Docker之部署Mysql
  • 基于C/C++获取电脑网卡的IP地址信息
  • 28相似矩阵和若尔当标准型
  • springboot操作MongoDB
  • 1月奶粉电商销售数据榜单:销售额约20亿,高端化趋势明显
  • 跨境数据传输是日常业务中经常且至关重要的组成部分
  • 错误: tensorflow.python.framework.errors_impl.OutOfRangeError的解决方案
  • springboot项目初始化执行sql
  • Kubernetes之存储管理(中)
  • MySQL workbench的基本操作
  • 【Flink】FlinkSQL中Table和DataStream互转
  • 网络总结知识点(网络工程师必备)一
  • 离线安装samba与配置(.tar方式安装)
  • [Java基础]—JDBC
  • 基本面向对象编程-计算机基本功能实现_
  • C++面向对象之多态性
  • Android性能优化系列篇:弱网优化
  • Mysql 插入大批量数据调优方法
  • matlab基础
  • 自动化测试——多窗口切换和切换frame
  • C#中,Elasticsearch.Net判断空字符串
  • 23种设计模式-适配器模式
  • 深入理解this指向问题
  • 事业单位联考(综合应用A类)典型例题教案