详解数据库中的视图、临时表

详解数据库中的视图、临时表

  1624人阅读  评论(0)  收藏  举报
  分类:
 

1、视图,临时表的概念

2、视图和临时表的区别

3、优缺点


一、

1、视图

    

     视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。


   视图是一个虚表,他是通过执行SQL查询所产生的。视图以select命名存储于数据字典当中。每当SQL查询包含有视图名称的时候,数据库管理系统会执行在视图定义当中所包含的查询,以建立其虚拟结果表。该结果表可以当做查询其余部分的源表使用。

   

    视图可以是建立在一个或多个表上,也可以建立在视图上,但是不管怎么样对视图数据的操作最终都会转换为对基本表的操作,因为视图是一个虚表,数据实际上保存在基本表中。


2、临时表

    

    临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作,在VFP退出时自动被释放。
    临时文件夹,临时文件夹顾名思义就是装临时文件用的。 在windowsXP的系统盘里一共有三个临时文件夹 系统临时文件夹的路径:C:\Windows\Temp 此文件夹是Windows系统用来转储临时文件的地方。


    临时表是一种并不存储在数据库当中的基表。与之相反的是,临时表只存在于创建该临时表的数据库会话被激活的情况下。

    临时表存储在数据库会话中,不在数据库中,当使用show tables 时没有显示,但是可以查询,当关闭数据库(quit,exit)然后在打开在去数据库中查询的时候就不存在了。

二、视图和临时表的区别

1、视图只存在于单个查询当中,每次使用该视图名,其虚拟表就会根据现有的数据重新被创建。
2、临时表存在于它被创建的整个数据库会话过程中。
3、视图自动使用其所定义的查询检索出来的数据进行填充。
4、必须使用SQLINSERT命令来向临时表添加数据。
5、只有那些符合视图可更新能力标准的视图才可用于数据修改。当使用视图进行更新时,该更新会永久被传递至底层基表上。
6、由于临时表都是基表,因此所有的临时表都是可更新的。不过,这些更新对于这些表来说是临时性的。
7、由于视图的内容是在该视图每次被使用的时候才生成,因此视图当中的数据几乎每次都是最新的。
8、临时表当中的数据所反应的是数据库在该表被装载进数据库时的状态。如果临时表所装载的源表中的数据在临时表检索这些数据之后发生了改变,那么临时表当中的内容有可能与数据库当中的其他部分的数据脱离同步状态。

三、优缺点
    
   1、由于视图的内容是在该视图每次被使用的时候才生成,所以数据和数据库中的数据是同步的,但是在每次查询的时候都要建立视图表结构,所以比较浪费时间。
   2、临时表仅需创建一次,所以相比视图每次都创建视图结构,节省了大量时间,但是临时表的数据在数据源发生改变是没有进行更新的话,就会出现数据不同步现象。
   3、简化数据查询语句——定义视图可以将表与表之间的复杂的连接操作和搜索条件对用户影藏起来,用户只需简单的对一个视图进行查询即可。
   4、使用户能从多角度看待同一数据。
   5、提高了数据的安全性———在建立视图的时候可以吧敏感的数据影藏起来,而吧需要的数据暴露给客户这样的话比较安全。
   6、提供了一定程度的逻辑独立性——数据库中是三级模式两级映射,三级模式是 外模式、模式、内模式而这里的视图就是外模式,这样就提供了数据的逻辑独立性。


**简单举例:

创建视图:

 create  view  viewname

as select sname ,sage,score

from table where sage<26     //这里就是简单的举例如上所述,可以建立多表连接的视图等 这里不再重复。

with check option ;          //在视图中插入数据时要满足表的条件


创建临时表:

create  temporary   table tablename (                 //创建临时表,如果想建立局部临时表则temporary前面加 local  就可以建立局部临时表                                                //如果建立全局临时表的话,就把local变为global就OK了

  sname char(6)   primary key,

 sage   smallint ,

 score int

);


注释:数据字典

数据库的重要部分是数据字典。它存放有数据库所用的相关信息,对用户来说是一组只读的表。数据字典内容包括:

表、视图、簇、及索引。  分配多少空间,当前使用了多少空间等。  列的缺省值。  约束信息完整性。用户名,用户及角色被授予的权限,用户访问或使用的审计信息,以及其他产生的数据库信息。


相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页