SQL 必知必会
陈旸
清华大学计算机博士
73337 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
第一章:SQL语法基础篇 (19讲)
SQL 必知必会
15
15
1.0x
00:00/00:00
登录|注册

12丨视图在SQL中的作用是什么,它是怎样工作的?

视图在更新时对数据表的影响
视图的优缺点
简单清晰
安全性
使用视图与计算字段
利用视图对数据进行格式化
利用视图完成复杂的连接
删除视图:DROP VIEW
修改视图:ALTER VIEW
嵌套视图
创建视图:CREATE VIEW
视图的特点
视图的定义
总结
如何使用视图简化SQL操作
视图的创建、更新和删除
什么是视图?
视图在SQL中的作用是什么,它是怎样工作的?

该思维导图由 AI 生成,仅供参考

我们之前对 SQL 中的数据表查询进行了讲解,今天我们来看下如何对视图进行查询。视图,也就是我们今天要讲的虚拟表,本身是不具有数据的,它是 SQL 中的一个重要概念。从下面这张图中,你能看到,虚拟表的创建连接了一个或多个数据表,不同的查询应用都可以建立在虚拟表之上。
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。
刚才讲的只是视图的一个使用场景,实际上视图还有很多作用,今天我们就一起学习下。今天的文章里,你将重点掌握以下的内容:
什么是视图?如何创建、更新和删除视图?
如何使用视图来简化我们的 SQL 操作?
视图和临时表的区别是什么,它们各自有什么优缺点?

如何创建,更新和删除视图

视图作为一张虚拟表,帮我们封装了底层与数据表的接口。它相当于是一张表或多张表的数据结果集。视图的这一特点,可以帮我们简化复杂的 SQL 查询,比如在编写视图后,我们就可以直接重用它,而不需要考虑视图中包含的基础查询的细节。同样,我们也可以根据需要更改数据格式,返回与底层数据表格式不同的数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

SQL中的视图是一种虚拟表,能够简化复杂的SQL查询操作,提高查询效率。通过创建、更新和删除视图,可以封装底层数据表的接口,实现数据格式化、连接查询和统计计算等操作。视图的创建语法为CREATE VIEW,可以基于SQL语句的结果集形成虚拟表,而嵌套视图则可以在已有视图的基础上创建新的视图。利用视图可以完成复杂的连接查询、数据格式化和统计计算,从而简化SQL操作,使其更加清爽易用。视图的使用有诸多好处,包括安全性和简单清晰。在使用视图时,一般不会轻易通过视图对底层数据进行修改,从而保证了数据表的数据安全性。同时,视图可以将原本复杂的SQL查询简化,提升了代码的复用率。需要注意的是,视图是虚拟表,不存储数据,且在更新时会受到很多限制。相比之下,临时表是真实存在的数据表,不用于长期存放数据,只为当前连接存在,关闭连接后会自动释放。总之,视图在简化SQL操作、提高查询效率的同时,也需要注意其虚拟表的特性和更新时的限制。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SQL 必知必会》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(79)

  • 最新
  • 精选
  • asdf100
    视图的底层原理是什么?执行一个查询语句是会有哪些操作步骤?

    作者回复: 一个视图其实是SELECT语句的集合,执行时会提前编译好,可以反复使用。在底层执行顺序的时候和SELECT语句是一样: 1、FROM子句组装数据 2、WHERE子句进行条件筛选 3、GROUP BY分组 4、使用聚集函数进行计算; 5、HAVING筛选分组; 6、计算所有的表达式; 7、SELECT 的字段; 8、ORDER BY排序 9、LIMIT筛选

    2019-07-08
    58
  • Goal
    视图的作用: 1、视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之间的关系。 2、视图提供了一个统一访问数据的接口。(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限),从而加强了安全性,使用户只能看到视图所显示的数据。 3、视图还可以被嵌套,一个视图中可以嵌套另一个视图。 注意:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

    作者回复: 总结的不错

    2019-07-08
    44
  • 一叶知秋
    优点:在总结中有写,安全、清晰 。 缺点:的话感觉就是如果需要额外的字段就需要更新视图吧...(感觉说的也不对 更新视图对基本表数据有影响。(比如update视图实际上就是对基本表的更新操作) 证明如下: mysql> select * from team_score; +---------+-----------+-----------+--------------+--------------+------------+ | game_id | h_team_id | v_team_id | h_team_score | v_team_score | game_date | +---------+-----------+-----------+--------------+--------------+------------+ | 10001 | 1001 | 1002 | 102 | 111 | 2019-04-01 | | 10002 | 1002 | 1003 | 135 | 134 | 2019-04-10 | +---------+-----------+-----------+--------------+--------------+------------+ 2 rows in set (0.00 sec) mysql> create view h_team_score as select game_id, h_team_score from team_score; Query OK, 0 rows affected (0.01 sec) mysql> update h_team_score set h_team_score=103 where game_id=10001; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from team_score; +---------+-----------+-----------+--------------+--------------+------------+ | game_id | h_team_id | v_team_id | h_team_score | v_team_score | game_date | +---------+-----------+-----------+--------------+--------------+------------+ | 10001 | 1001 | 1002 | 103 | 111 | 2019-04-01 | | 10002 | 1002 | 1003 | 135 | 134 | 2019-04-10 | +---------+-----------+-----------+--------------+--------------+------------+ 2 rows in set (0.00 sec)

    作者回复: Good Job

    2019-07-08
    4
    21
  • 肥而不腻
    我理解,视图是一个查询结果集,随实体数据表数据变化而变化。

    作者回复: 正确

    2019-08-09
    8
  • Geek_weizhi
    本文章对我帮助很大!

    作者回复: 谢谢!

    2019-07-13
    8
  • cricket1981
    视图都是只读的吗?

    作者回复: 可以修改数据,不过一般还是用来view数据

    2019-07-08
    8
  • 暮雨
    视图查询效率很低

    作者回复: 对 所以需要根据需求进行选择

    2019-11-21
    5
  • 醉红颜
    陈老师,您好!我这儿有个问题,当视图创建成功后,之后对相应表有更新,该视图会自动更新吗?

    作者回复: 视图是虚拟的表,当数据表有更新的时候,视图也会自动更新的

    2019-09-20
    2
    4
  • 不才~
    视图创建之后会保留在数据库吗?以后可以调用吗?

    作者回复: 可以重复使用的

    2019-08-08
    4
  • 爱思考的仙人球
    视图的优点是隔绝数据表操作,可以对不同的用户提供不同的结果集,让用户只看到自己该看到的内容;缺点是灵活性差,有时候可能缺少想看的数据。

    作者回复: 对的

    2019-10-17
    2
收起评论
显示
设置
留言
79
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部