MYSQL的视图

简介: MYSQL的视图

MYSQL的视图



介绍

视图(view)是一个虚拟表,非真实存在,其本质是根据sql语句获取动态的数据集,并为其命名,用户使用时只需要使用视图名称即可获取结果集,并可以将其当做表来使用.

数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存档在原来的表中.

使用视图查询数据时,数据库系统会从原来的表中取出对应的数据,因此,视图中的数据是依赖于原来的表中的数据,一旦表中的数据发生改变,显示在视图中的数据也会发生改变.

作用

简化代码,可以把重复使用的查询封装成视图重复使用,同时可以使复杂的查询易于理解和使用

安全原因,如果一张表中有很多数据,很多信息不希望让别人看到,此时可以使用视图.如: 社会保险基金表,可以使用视图只显示姓名,地址,而不显示社会保险号和工资数等,可以对不用的用户,设定不同的视图

创建视图

create [or replace] [algorithm = {undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option]
参数说明:
  1:algorithm: 可选项,表示视图选择的算法
  2:view_name: 表示要创建的视图名称
  3:column_list: 可选项,指定视图中各个属性的名词,默认情况下与select语句中的查询的属性相同
  4:select_statement: 表示一个完整的查询语句,将查询记录导入视图中
  5:[with [cascaded | local] check option]: 可选项,表示更新视图时要保证在该视图的权限范围之内.
查看表和视图的语句: show full tables;
查询视图: select * from view_name;
修改视图
修改视图是指修改数据库中已存在的表的定义,当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致,mysql中通过create or replace view语句和alter view语句来修改视图
格式:alter view 视图名 as select语句; create or replace view 视图名 as select语句
更新视图
某些视图是可以更新的,也就是说,可以在update,delete,insert等语句中使用他们,以更新基表的内容,对于更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系,如果视图包含下述结构中的任何一种,那么他就是不可更新的.
    1:聚合函数(sum,min,max,count)
    2:distinct
    3:group by
    4:having
    5:union ,union all
    6:位于选择列表中的子查询
    7:join
    8:from子句中的不可更新视图
    9:where 子句中的子查询,引用from子句中的表
    10:仅引用文字值(在该情况下,没有要更新的基本表)
注意:视图中虽然可以更新数据,但是有很多的限制,一般情况下最好将视图作为查询数据的虚拟表,而不要通过视图更新数据,因为,使用视图更新数据时,如果没有全面考虑在视图中更新数据的限制,就可能造成数据更新失败.
删除/重命名视图
重命名视图: rename table view_name to view_name2
删除视图: drop view if exists view_name 
删除视图时只能删除视图的定义,不能删除数据


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
11月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
2024年小结:感谢阿里云开发者社区每月的分享交流活动,支持持续学习和进步。过去五个月投稿29篇,其中17篇获高分认可。本文详细介绍了MySQL InnoDB存储引擎的MVCC机制,包括数据版本链、readView视图及解决脏读、不可重复读、幻读问题的demo演示。
|
SQL 存储 关系型数据库
mysql-视图的定义和简单使用
这篇文章介绍了MySQL中视图的定义和简单使用方法,包括视图的创建规则和使用限制。通过一个实际的例子,展示了如何创建视图以及如何使用视图来简化复杂的SQL查询操作。
mysql-视图的定义和简单使用
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(8)作者——LJS[含MySQL 创建、修改、跟新、重命名、删除视图等具体详步骤;注意点及常见报错问题所对应的解决方法]
MySQL 创建、修改、跟新、重命名、删除视图等具体详步骤;举例说明注意点及常见报错问题所对应的解决方法
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
284 0
|
SQL 安全 关系型数据库
MySQL创建视图(CREATE VIEW)13
【7月更文挑战第13天】创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。
340 1
|
缓存 DataWorks 关系型数据库
DataWorks产品使用合集之如何抽取MySQL视图数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
239 4
|
存储 关系型数据库 MySQL
|
存储 数据可视化 关系型数据库
深入理解 MySQL 视图
深入理解 MySQL 视图
187 2

推荐镜像

更多