大家好,我是IT修真院郑州分院第8期学员,一枚正直善良的java程序员。今天给大家分享一下,修真院官网 java任务中可能会使用到的知识点:
数据库视图
【修真院java小课堂】数据库视图20180623
1.背景介绍
- 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询都需要编写MySQL代码效率低下。为了解决这个问题,数据库提供了视图(view)功能。
视图是什么?
- 视图(View)是从一个或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。
2.知识剖析
2.1 视图作用是什么?
- 视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
2.2 优点
- 1.简化了操作,把经常使用的数据定义为视图。
- 2.安全性,用户只能查询和修改能看到的数据。
- 3.逻辑上的独立性,屏蔽了真实表的结构带来的影响。
- 4.把从数据库中获取的数据返回给客户端
2.3 缺点
- 性能差
- 修改限制
3.常见问题
3.1 视图与表格的联系
- 视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
3.2 视图与表格的区别
- 1、视图是已经编译好的sql语句。而表不是
- 2、视图没有实际的物理记录。而表有。
- 3、表是内容,视图是窗口
- 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在
4.编码实战
- 创建、删除视图
- 见视频
5.扩展思考
5.1 应用场景
从一开始的背景介绍中其实就可以看到视图的应用场景所在,视图是为了解决复杂查询每次都需要编写Mysql代码的问题。显而易见,当一个查询事件比较复杂的时候就可以使用考虑使用使用视图
作用上来看,隔离数据和用户场景
6.参考文献
https://blog.csdn.net/moxigandashu/article/details/63254901
https://blog.csdn.net/qq_35845339/article/details/78655326
https://blog.csdn.net/buhuikanjian/article/details/53105416
7.更多讨论
Q:视图的定义是什么?视图中是否保存了数据?
A:视图的定义是sql语句,视图中实际上是不保存数据的
Q:视图的缺点性能差是怎么说的?
A:视图是将sql语句进行了再次封装,相比较最直接执行sql语句,多了一层封装,对性能必然是有影响的
Q:视图是不是必须的?
A:视图本质上就是sql语句,是为了简化操作而使用的,它不是必须的。