表与视图的区别

1.表与视图的关系 
     两者处于不同的层次。 
     表是真实存在的结构,而视图可以认为是虚拟的表。
2.定义的区别
      表 -- 是数据库中的主要结构,它总是表示单个的、特定的集合。每个表至少包含一个字段,即一个主键(primary key),他唯一地标识表的每条记录。
视图 -- 是由来自数据库中的一个或多个表或多个表的字段所组成的一个虚拟的表。实际上它自身不存储任何数据,存储在数据库中的有关视图的唯一信息就是它的结构。
3.实践中检验一下
     orcl@ TEST> create view v1 as select * from emp;
视图已创建。
已用时间:  00: 00: 00.00
orcl@ TEST> select * from emp;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEP
---------- ---------- --------- ---------- -------------- ---------- ---------- -------
      7369 SMITH      CLERK           7902 17-12月-80            800
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
      7566 JONES      MANAGER         7839 02-4月 -81           2975
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000
      7839 KING       PRESIDENT            17-11月-81           5000
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
      7876 ADAMS      CLERK           7788 23-5月 -87           1100
      7900 JAMES      CLERK           7698 03-12月-81            950
      7902 FORD       ANALYST         7566 03-12月-81           3000
已选择13行。
已用时间:  00: 00: 00.13
orcl@ TEST> select * from v1;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEP
---------- ---------- --------- ---------- -------------- ---------- ---------- -------
      7369 SMITH      CLERK           7902 17-12月-80            800
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
      7566 JONES      MANAGER         7839 02-4月 -81           2975
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000
      7839 KING       PRESIDENT            17-11月-81           5000
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
      7876 ADAMS      CLERK           7788 23-5月 -87           1100
      7900 JAMES      CLERK           7698 03-12月-81            950
      7902 FORD       ANALYST         7566 03-12月-81           3000
已选择13行。
已用时间:  00: 00: 00.13
orcl@ TEST> roll;
回退已完成。
orcl@ TEST> select * from v1;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEP
---------- ---------- --------- ---------- -------------- ---------- ---------- -------
      7369 SMITH      CLERK           7902 17-12月-80            800
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
      7566 JONES      MANAGER         7839 02-4月 -81           2975
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000
      7839 KING       PRESIDENT            17-11月-81           5000
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
      7876 ADAMS      CLERK           7788 23-5月 -87           1100
      7900 JAMES      CLERK           7698 03-12月-81            950
      7902 FORD       ANALYST         7566 03-12月-81           3000
已选择13行。
已用时间:  00: 00: 00.12
orcl@ TEST> delete from v1 where empno=7902;
已删除 1 行。
已用时间:  00: 00: 00.01
orcl@ TEST> select * from v1;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEP
---------- ---------- --------- ---------- -------------- ---------- ---------- -------
      7369 SMITH      CLERK           7902 17-12月-80            800
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
      7566 JONES      MANAGER         7839 02-4月 -81           2975
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000
      7839 KING       PRESIDENT            17-11月-81           5000
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
      7876 ADAMS      CLERK           7788 23-5月 -87           1100
      7900 JAMES      CLERK           7698 03-12月-81            950
已选择12行。
已用时间:  00: 00: 00.13
orcl@ TEST> select * from emp;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEP
---------- ---------- --------- ---------- -------------- ---------- ---------- -------
      7369 SMITH      CLERK           7902 17-12月-80            800
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
      7566 JONES      MANAGER         7839 02-4月 -81           2975
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000
      7839 KING       PRESIDENT            17-11月-81           5000
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
      7876 ADAMS      CLERK           7788 23-5月 -87           1100
      7900 JAMES      CLERK           7698 03-12月-81            950
已选择12行。
已用时间:  00: 00: 00.12
------------------------从上面的操作可以发现,我们对 视图进行操作,最终仍然反映到表中,同样的道理,我们对表进行操作时,视图也会发生相应的改变,下面我们从执行计划的角度查看,视图是如何操作的---------------------------------------
orcl@ TEST> set autot trace exp
orcl@ TEST> delete from emp where empno=7902;
已删除 1 行。
已用时间:  00: 00: 00.02
执行计划
----------------------------------------------------------
Plan hash value: 161811703
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | DELETE STATEMENT   |      |     1 |     4 |     3   (0)| 00:00:01 |
|   1 |  DELETE            | EMP  |       |       |            |          |
|*  2 |   TABLE ACCESS FULL| EMP  |     1 |     4 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("EMPNO"=7902)
orcl@ TEST> delete from v1 where empno=7902;
已删除0行。
已用时间:  00: 00: 00.02
执行计划
----------------------------------------------------------
Plan hash value: 161811703
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | DELETE STATEMENT   |      |     1 |     4 |     3   (0)| 00:00:01 |
|   1 |  DELETE            | EMP  |       |       |            |          |
|*  2 |   TABLE ACCESS FULL| EMP  |     1 |     4 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("EMPNO"=7902)

-------------------------发现了一个很实质的问题,我们对视图进行delete,执行计划显示的却是 emp表----------------------

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25623297/viewspace-691810/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25623297/viewspace-691810/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值