oracle视图和表的区别是什么

区别:1、视图是已经编译好的sql语句,而表不是;2、视图没有实际的物理记录,而表有;3、表是内容,视图是窗口;4、表是内模式,视图是外模式;5、表属于全局模式中的表,是实表,而视图属于局部模式的表,是虚表。

本教程操作环境:Windows7系统、Oracle 11g版、Dell G3电脑。

一:什么是表:

表是作为oracle数据库存储数据的一种数据结构,就相当于我们在java中用集合list,或者数组存储我们的数据一样,表是一种二维结构,有行 有列,我们把相同类型的数据归为一列,比如每个人都有姓名,我们就把姓名归为一列,年龄归为一列,而行对应着每个人的数据,比如第一行是小红的姓名和年龄,第二行是小强的姓名和年龄。通过创建表然后向表中插入数据,最终实现对信息的存储。

二:什么是视图:

1、为什么要用视图?

举个例子,对于公司人员信息表上都有他们的薪资情况,财务再根据数据库里薪资来给每个人发放工资,所以工资这一栏是非常重要的,所以为了保证运转条理性,我们一般不能让数据库管理员看到这一栏的,毕竟管理员也是员工,对于这些敏感的信息,可能他看不到对大家都好。那么就衍生了该如何解决这个问题呢,有的人会说创建一个新的员工表,里面没有员工工资一栏,但是这个方法可是非常不明智的,因为当我们把原来的数据修改之后岂不是还要再新表上还要做一次修改,而且在新表上做了修改还要更新到主表,中间就会出现很多问题的,此时利用视图则是最合理的一个方法。

视图是从已存在表上抽出逻辑相关的数据集合,其本身和表的区别不大,都是对数据一种存储,只不过我们可以在已有表的基础上抽取一部分我们想要的数据。

2、我们修改视图之后会更新到基表中吗?

这个是肯定的,视图的意义就是对基表中的数据进行一部分提取后然后提供给其他人操作的,如果不能更新基表,那和新建一个表就毫无区别了,同时对于基表中数据的改变也能立马更新视图。

三:区别:

1、视图是已经编译好的sql语句。而表不是。

2、视图没有实际的物理记录。而表有。

3、表是内容,视图是窗口。

4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。

5、表是内模式,视图是外模式。

6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

8、视图的建立和删除只影响视图本身,不影响对应的基本表。

推荐教程:《Oracle教程》

推荐阅读