我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库视图的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库视图的作用是什么

这篇文章主要讲解了“MySQL数据库视图的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库视图的作用是什么”吧!

MySQL数据库视图的作用是什么

1 视图的介绍与作用

视图的介绍:

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

  • 数据库中只存放了视图的定义,而并没有存放视图中的数据。 数据还存在于原来的数据表中。

  • 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此, 视图中的数据是依赖于原来表中数据的。 当表的数据发生改变,视图中的数据也会随之改变。

视图的作用:

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

  • 更加安全, 比如,如果有一张表中有很多数据,很多信息不希望被其他人看到,这时就可以使用到视图,对不同的用户使用不同的视图。


2 视图的创建

创建视图的语法如下:

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]: 表示更新视图时要保证该视图在权限范围之内。


3 视图的修改

修改视图是指修改数据库中已存在的表的定义。当基本表中的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间的一致。

语法格式:

alter view 视图名 as select语句;

4 视图的更新

并不是所有的视图都可以更新。可以在UPDATE、DELETE或INSERT等语句中使用视图,以更新基本表的内容。对于可更新的视图,在视图中的行和基本表中的行之间必须具有一对一的关系,如果视图包含下述结构中的任何一种,则该视图不可更新:

  • 聚合函数(SUM()、MIN()、MAX()等);

  • DISTINCT;

  • HAVING;

  • UNION或者UNION ALL;

  • 位于选择列表中的子查询;

  • JOIN;

  • FROM子句中的不可更新视图;

  • WHERE子句中的子查询,引用FROM子句中的表;

  • 仅使用文字值(在该情况下,没有要更新的基本表)。

注意:
视图中虽然可以更新数据,但是有很多限制。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。
当真实表中修改了某个存在视图中的字段时,视图需要更新,否则该视图就会变成无效视图!


5 视图的重命名与删除

重命名视图:

rename table 视图名 to 新视图名;

删除视图:

drop view if exists 视图名;

删除视图时,只删除了视图的定义,而并不会删除真实表中的数据

如果想同时删除多个视图,则使用下面的语法格式:

drop view if exists 视图名1, 视图名2, 视图名3...;

6 视图的练习

6.1 数据准备

在进行练习时可以先根据下面代码创建用于练习的两个基本表:

create table college(
    cno   int         null,
    cname varchar(20) null);
create table student(
    sid     int         null,
    name    varchar(20) null,
    gender  varchar(20) null,
    age     int         null,
    birth   date        null,
    address varchar(20) null,
    score   double      null);

两表的基本数据如下图所示:

MySQL数据库视图的作用是什么

6.2 查询平均分最高的学校名称

结合之前学过的知识可以 尝试使用子查询和连接查询 来实现,参考代码如下:

SELECT cname
FROM (SELECT cname, rank() over (order by avg_score desc ) item
      FROM (SELECT cname, avg(score) avg_score
            FROM student
                     JOIN college ON sid = cno
            GROUP BY cname) t) tt
WHERE item = 1;

在上述代码中,先将student 与 college两表关联,将关联的查询作为子表,并根据子表进行平均数的排序,平均数序号为1的平均分数最高,再以此为子表进行子查询,查询出了平均分最高的学校。具体结果如下:
MySQL数据库视图的作用是什么

这种方式虽然能够解决问题,但是相对复杂,不容易看懂,为了简化代码,我们可以将每一个子查询创建为一个视图

视图解决方式代码:

-- 1 视图一,连接两表并计算平均数
CREATE VIEW t_view AS
SELECT cname, avg(score) avg_score
FROM student
         JOIN college ON sid = cno
GROUP BY cname;

-- 2 视图二,利用视图一对平均分数进行排序标号
CREATE VIEW tt_view AS
SELECT cname, rank() over (order by avg_score desc ) item
FROM (t_view);

-- 3 利用视图查询
SELECT cname
FROM (tt_view)
WHERE item = 1;

在创建完视图后,如果想要查询平均分前三名学校,则方便很多,创建好的视图可以直接使用!

参考代码及结果:

SELECT cnameFROM (tt_view)WHERE item = 1
   OR item = 2
   OR item = 3;

MySQL数据库视图的作用是什么

感谢各位的阅读,以上就是“MySQL数据库视图的作用是什么”的内容了,经过本文的学习后,相信大家对MySQL数据库视图的作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库视图的作用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库视图是什么意思以及 MySQL 视图如何工作?

数据库视图只不过是存储在数据库中并具有关联名称的 SQL 语句。视图实际上是预定义 SQL 查询形式的表的组合。视图可以包含表的所有行,也可以从表中选择行。 MySQL 视图可以从一个或多个表创建,这些表依赖于编写的 MySQL 查询来创建
2023-10-22

MySQL数据库创建视图的方法是什么

在MySQL数据库中,可以使用以下语法来创建视图:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;其中,view_
MySQL数据库创建视图的方法是什么
2024-03-12

Oracle数据库中的视图是什么

在Oracle数据库中,视图是一种虚拟的表,它是通过一个查询语句来定义的。视图本身并不包含任何数据,而是基于查询语句的结果集。用户可以像访问表一样使用视图,从而简化复杂查询和保护数据安全性。视图可以帮助用户隐藏底层表的细节,提供更简单和直观
Oracle数据库中的视图是什么
2024-04-09

MySQL中view视图的作用是什么

MySQL中的view视图是一个虚拟表,它包含了从一个或多个表中获取的数据的查询。它类似于实际的表,但没有自己的存储空间。view视图的作用有以下几个方面:1. 简化复杂的查询:可以使用view视图来封装复杂的查询,使得查询更加简单和易于理
2023-09-07

数据库视图有哪些作用

数据库视图的作用有以下几个方面:数据安全性:通过视图可以隐藏敏感数据,只向用户展示部分数据,保护数据库中重要信息的安全。数据简化:视图可以简化用户对数据库的查询操作,将复杂的查询操作封装在视图中,用户只需要对视图进行查询操作即可获取所需的数
数据库视图有哪些作用
2024-02-29

mysql视图的作用是什么及怎么创建

本篇内容介绍了“mysql视图的作用是什么及怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!常见的数据库对象视图的作用1、视图一方面可
2022-11-30

sql数据库视图创建的方法是什么

在 SQL 中,创建视图的语法如下:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;其中,view_name 是视
sql数据库视图创建的方法是什么
2024-04-09

MySQL数据库之索引的作用是什么

MySQL数据库的索引是用于提高查询效率的一种数据结构。它可以帮助数据库系统快速定位和访问数据,减少数据的扫描量,从而提高查询的速度。具体来说,索引在数据库中是一种有序的数据结构,它包含了表中某一列或多列的值,以及对应的物理位置信息。当进行
2023-08-15

mysql怎么导出数据库视图

mysql 数据库视图可通过如下方法导出:使用 mysqldump 实用程序:mysqldump -u [用户名] -p[密码] --no-data [数据库名称] [视图名称] > [文件名].sql。使用 mysql workbench
mysql怎么导出数据库视图
2024-08-06

Django通用视图的作用是什么

Django通用视图的作用是为开发者提供一组封装好的视图函数,以简化常见的数据处理和页面渲染任务。通用视图可以处理常见的操作,如列表显示、对象创建、对象更新和对象删除,同时还可以处理一些常见的数据处理任务,如分页、过滤和搜索等。使用通用视图
2023-09-29

编程热搜

目录