zoukankan      html  css  js  c++  java
  • 数据库系统概论之视图

    1:视图定义

    视图是从一个或者多个基础表(或视图)导出来的表,它与基础表不同,是一张虚拟表。数据库中存在视图的定义,并不存放视图对应的数据,这些数据将保存在原来的基础表中;因此一旦基础表的数据发生变化则视图也发生变化。视图一旦定义之后,就可以与基本表一样被查询,删除;也可以在视图之上再定义新的视图,但对视图的更新(增删改)操作有一定的限制。

    2:视图创建语句(略)

    3:视图的更新

    更新视图是通过视图来插入、删除和修改数据。由于视图是不实际存储数据的虚拟表,因此对视图的更新操作最终将转换为对基础表的操作。为防止用户通过视图对数据进行增加、删除、修改,可以在定义视图的时候使用WITH CHECK OPTION子句进行约束。这样在视图上进行增删改的时候,关系数据库系统会检查视图的定义中的条件,若不满足条件则拒绝指定该更新操作。

    例如:

    CREATE VIEW IS_student AS SELECT
    	sno,
    	sname,
    	sage
    FROM
    	student
    WHERE
    	sdept = 'IS' WITH CHECK OPTION;
    

     我们将student表之上创建一个IS_Student视图,该视图的约束条件为sdept = 'IS',所以当我们要对视图更新时候必须要满足条件sdept =‘is’。当我们对视图IS_STUDENT执行查询时候,查询语句:

    SELECT * FROM IS_STUDENT
    

     只能查出sdept =‘IS’的记录。 所以其余的更新操作也就只能符合sdept=‘IS’条件才可以。另外对于一个不可以更新的视图创建导出来的视图也不可以更新。

    4:视图的作用:

    a: 视图可以简化用户的操作,例如我们查询逻辑需要3张以上的表进行连接查询时候,查询条件比较复杂,这时候我们就这可以将多张表的join创建一个视图,之后对该视图进行查询就可以了,这样可以简化查询的复杂性。

    b:视图可以从多个角度让用户看数据。

    c:数据可以对机密数据提供保障,例如我们有一个用户表,里面提供的有用户基本信息与一些敏感信息,但是有时候需要将一些基本信息暴露给用户,这时候如果将整张表暴露出去会危险,因此可以在用户表上创建一个视图进行安全保护。

  • 相关阅读:
    网上Silverlight项目收集
    在Silverlight页面里显示HTML的免费控件下载(附使用方法代码)
    Silverlight SNS项目
    Visual Studio 2010下的RIA开发,Silverlight 4线下技术交流会期待您的参与!
    Windows7硬件展示与客户端信息收集
    Silverlight版的神奇罗盘,仿Google的Flash神奇罗盘
    (解题思路)Entity Framework 如动态创建表或者列
    (学)这些年来的几宗罪
    (学)在SQL2005中使用分区表技术
    (医)有痔青年的福音
  • 原文地址:https://www.cnblogs.com/leodaxin/p/8858938.html
Copyright © 2011-2022 走看看