数据库回顾(六) 数据库视图概述

248 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

大家好! 我是慕歌,一只想教你学习 后端技术的野生coder! 欢迎来到慕歌的数据库系列教程,希望通过这个教程带大家深入学习数据库技术,该教程所有知识点均来源于本人的日常学习与开发中,如有疑问请与我联系!

前言

在上一节的分享中,慕歌向大家分享关于数据库约束的知识,其中包括外键约束,自增约束以及检查约束等。这些约束设计的意义都是服务于对应的数据完整性,而考虑所设计的,这些约束是在数据表设计的最初就需要考虑的。所以数据库的设计是需要严谨全面的考虑,在设计之初就考虑对所有字段的约束进行初始化,但是也需要考虑不是所有约束都需要严格遵守。根据数据量进行不同的考虑,数据的安全级别是什么的,允许通过部分的数据不准确来换取更快捷的执行效率。
那么这一节将就数据库视图的知识进行讲解,在某些场景下需要使用特殊的权限进行数据的查询,这就是数据视图的作用。

数据视图

视图概述:

视图是一种数据的格式,它不是真实的数据表,一个表或者多个表的数据逻辑的连接,视图并不存储数据。

简单理解:视图是查询语句的存储,数据来源于原数据表

视图作用:

通过数据视图可以虚拟出多张数据表,用于不同的用户访问。

  • 视图本身不存储数据,是一种虚拟表
  • 视图依赖于已有的数据表建立
  • 视图本身的操作不影响原表,但是对数据的操作会影响到原表的数据存储
  • 视图可以理解为对数据表的另外一种表现形式

视图操作:

单表的视图:

#语法:
CREATE [OR REPLACE] 
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] 
VIEW 视图名称 [(字段列表)]
AS 查询语句
[WITH [CASCADED|LOCAL] CHECK OPTION]

#示例:
#创建名为empvu80 的视图,存储的员工表的数据
CREATE VIEW empvu80
AS 
SELECT  employee_id, last_name, salary
FROM    employees
WHERE   department_id = 80;
  • 基于sql 的查询基础上封装视图
  • 如果select 语句中的字段与视图一致

多表视图:

#示例:
#联合员工表与公司表的数据进行视图的创建
CREATE VIEW emp_depart
AS
SELECT CONCAT(last_name,'(',department_name,')') AS emp_dept
FROM employees e JOIN departments d
WHERE e.department_id = d.department_id

查询视图:

#示例:
#查询数据库表对象,数据对象
show tables;
#查询视图的结构
DESC view_name;
#查询视图的属性
show table status like ‘view_name’ ;
#查询视图定义信息
show create view view_name;

#通过以上操作执行对视图的查看

总结:

  • 操作简单,可将经常使用的查询的数据进行视图封装,这样保证简化开发人员的操作
  • 减少数据冗余,不需要所所有结果集进行存储,通过虚拟表暂存数据
  • 增强数据安全性,视图的权限有限,在一定程度上具有权限隔离作用

结语

这一节的分享到这里就结束了,下一节将带来数据库权限的分享学习!
如果您觉得本文不错,欢迎点赞支持,您的关注是我坚持的动力!