数据库创建视图的作用-物化视图创建
区别
1、视图是编译好的SQL语句,而表不是;
2.视图没有实际的物理记录,但是表有;
3、表是内容,视图是窗口;
4、表占物理空间,视图不占物理空间。 视图只是一个逻辑概念。 表可以及时修改数据库创建视图的作用,但是视图只能通过创建的语句修改;
5、表是三级模式结构中的概念模式,尝试是外部模式;
6、视图是一种查看数据表的方式。 可以查询数据表中由某些字段组成的数据。 它只是一些 SQL 语句的集合。 从安全的角度来看,视图不允许用户接触数据表,让他们不知道表结构;
7、表在全局模式下属于表,是实表,视图在本地模式下属于表,是虚表;
8、视图的建立和删除只影响视图本身,不影响对应的基础表;
9. 无法更新或插入视图。
连接
1、视图(view)是建立在基本表之上的表。 它的结构(即定义的列)和内容(即所有数据行)都来自于基础表,它的存在是根据基础表的存在而存在的;
2、一个视图可以对应一个基础表,也可以对应多个基础表;
3、视图是对基本表的抽象,是逻辑意义上建立的新关系。
总结
视图是一个子查询,其性能肯定会低于直接查询(虽然SQL内部有优化),所以使用视图需要注意的一点就是不要嵌套查询,尤其是复杂查询。
视图有什么用
1、当一个查询需要经常作为子查询使用时,视图可以简化代码,直接调用,不用每次都重写这个东西。
2、系统的数据库管理员需要向别人提供一个表中某两列的数据,不希望他看到其他的数据。 这时候他可以创建一个只有这两列数据的视图,然后发布给他。
性能损失解决方案
优化视图的查询语句。
一般来说,直接查询和查询视图没有区别(sql本身会优化),除非视图嵌套了一个视图数据库创建视图的作用,或者子查询计算复杂。
特别提示:
每次选择视图时,视图都会重新计算创建它的规则(sql 算法)。 如果算法复杂,数据量大,就会比较慢,所以每次都会很慢。
而且表的索引对于view视图是无效的,属于全表扫描。
例子
数据库是Oracle,使用的查看工具是免费版的Navicat。
定位到指定数据,点击视图,右侧显示当前数据库的所有视图。 双击打开查看窗口,看起来和表格一样:
Ctrl+D进入视图的SQL语句进行查看,如下:
以上是对工作中使用的视图的简单介绍。 如果大家有什么见解,后续更新,希望对大家有所帮助!