ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 表与视图的区别

表与视图的区别

原创 Linux操作系统 作者:zui019 时间:2011-04-06 22:00:34 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-01

  • 博文量
    16
  • 访问量
    28879