zoukankan      html  css  js  c++  java
  • 第五章 复杂查询 5-1 视图

    一、视图和表
    1、什么是视图:从SQL的角度来看,视图就是一张表。只是这张表不保存实际数据,而是保存SELECT语句。

    2、视图的优点
    (1)视图无需保存数据,因此可以节约存储设备的容量。
    注:表中存储的是实际数据,而视图中保存的是从表中取出数据所使用的SELECT语句。
    (2)可以将频繁使用的SELECT语句保存成视图,这样就不用每次都重新书写了。
    只需要在SELECT语句中进行调试,就可以方便地得到想要的结果了。特别是在进行汇总以及复杂的查询条件导致SELECT语句异常庞大时,使用视图可以大大提高效率。
    (3)视图中的数据会随着原表的变化自动更新,因此可以保证数据的最新状态。
    注:数据保存在表中时,必须要显式地执行SQL更新语句才能对数据进行更新。

    二、创建视图的方法

    例子:

    1、使用视图的查询
    在FROM中使用视图的查询,通常由如下两个步骤:
    (1)首先执行定义视图的SELECT语句。
    (2)根据得到的结果,在执行在FROM子句中使用视图的SELECT语句。
    注:我们应该避免在视图的基础上创建视图,因为对于多数的DBMS来说,多重视图会降低SQL的性能。
     
    三、视图的限制
    限制一1️⃣定义视图时不能使用ORDER BY子句。
    注:视图和表一样,数据行都是没有顺序的。
     
    限制二2️⃣对视图进行更新
    标准SQL规定:如果定义视图的SELECT语句能够满足某些条件,那么这个视图就可以被更新、这些条件如下:
    (1)SELECT子句中未使用DISTINCT
    (2)FROM子句中只有一张表
    (3)未使用GROUP BY子句
    (4)未使用HAVING子句
     
    四、删除视图

  • 相关阅读:
    CodeForces 757C Felicity is Coming!(排列组合)
    Ural 1519 Formula 1( 插头dp )
    FZU 2187 回家种地 ( 扫描线 + 离散 求矩阵单次覆盖面积 )
    HDU 1255 覆盖的面积 ( 扫描线 + 离散 求矩阵大于k次面积并 )
    ZOJ 3841 Cards
    HDU 4012 Paint on a Wall(状压+bfs)
    Topcoder SRM653div2
    2015 GDUT校赛
    Topcoder SRM652div2
    CodeChef A String Game(SG)
  • 原文地址:https://www.cnblogs.com/mumulin99/p/9835657.html
Copyright © 2011-2022 走看看