MySQL学习-视图(一)

185 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

前言

上篇我们学习了MySQL中的CHECK与DEFAULT约束。有兴趣的小伙伴可以阅读(# MySQL学习-CHECK与DEFAULT约束)。
下面学习MySQL中的视图。

数据库对象

常见的数据库对象:

对象描述
表是存储数据的逻辑单元,以列和行的形式存在,列就是字段,行就是记录
数据字典就是系统表,存放数据库相关信息的表,系统表的数据通常由数据库系统维护,通常不应该修改,只可查看
约束执行数据校验的规则,用于保证数据完整性的规则
视图一个或者多个数据表里的数据的逻辑显示,视图并不存储数据
索引用于提高查询性能,相当于书的目录
存储过程用于完成一次完整的业务处理,没有返回值,但可通过传出参数将多个值传给调用环境
存储函数用于完成一次特定的计算,具有一个返回值
触发器相当于一个事件监听器,当数据库发生特定事件后,触发器被触发,完成响应的处理

视图

使用视图的原因

视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如员工的薪资,只有级别高的人员才可以查看,其他人不能查看。

理解视图

  • 视图是一种虚拟表,本身没有数据,占用很少的内存空间,它是SQL的一个重要概念。
  • 视图是建立在已有表的基础上的,视图赖以建立的这些表称为基表。
  • 视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加,删除和修改操作时,数据表中的数据会相应的发生变化,反之亦然。
  • 向视图提供数据内容的语句为SELECT语句,可以将视图理解为存储起来的SELECT语句。
    • 在数据库中,视图不会保存数据,数据正在保存在数据表中。当对视图中的数据进行增删改时,数据表中的数据会会相应的发生变化,反之亦然。
  • 视图是向用户提供基表数据的另一种表现形式。通常情况下,小型项目的数据库可以不使用视图,但是在大型项目中,以及数据表比较复杂的情况下,视图的价值就凸显出来了,它可以帮助我们把经常查询的结果集放到虚拟表中,提升使用效率。理解和使用起来都非常方便。

今天先学习到这里,明天继续。