MYSQL的视图

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 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 
删除视图时只能删除视图的定义,不能删除数据
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
存储 关系型数据库 MySQL
mysql视图
mysql视图
|
1月前
|
关系型数据库 MySQL 索引
【MySQL】17. 视图
【MySQL】17. 视图
11 0
|
6月前
|
SQL 算法 关系型数据库
|
6月前
|
关系型数据库 MySQL
|
9月前
|
存储 关系型数据库 MySQL
|
10月前
|
SQL 关系型数据库 MySQL
九、MySQL之视图的介绍
九、MySQL之视图的介绍
58 0
|
10月前
|
SQL 关系型数据库 MySQL
mysql 视图
什么是视图 view站在不同的角度去看待同一份数据 创建视图对象 create view db2_v as select * from db2; 删除视图对象 drop view db2_v; 只有DQL语句才能以view的形式创建 视图面向对象进行增删改查,对视图对象进行操作。原表也会操作 导出整个数据库 在 windows 的 dos 命令窗口中执行:mysqldump bjpowernode>D:\bjpowernode.sql -uroot -p123 导出指定库下的指定表 在 windows 的 dos 命令窗口中执行:mysqldump b
39 0
|
11月前
|
SQL 存储 数据可视化
MySQL-视图
MySQL-视图
|
11月前
|
SQL 存储 关系型数据库
14_MySQL视图
14_MySQL视图
58 0
|
SQL 存储 关系型数据库
MySQL视图
注意:只有DQL语句才能以view的形式创建。 create view view_name as 这里的语句必须是DQL语句;
91 0
MySQL视图