zoukankan      html  css  js  c++  java
  • [SQL Server系] -- 视图

    1:定义

    从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。

    从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。

    从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

    通俗的讲:假如现在有两张表,你需要选取两张表中的部分数据,将这些数据重新组成一张表,以便于查询,则可将这两张表的结果组成视图(相当于虚拟表)。

    2:特点

    • 视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。
    • 对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。
    • 当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化。
    • 若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

    3:语法

    CREATE VIEW 视图名
        [WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }]
        AS
            SELECT 列1, 列2, ……, 列n
            FROM 表名
            [WHERE 从句]
            [WITH CHECK OPTION]

    eg:

    删除视图:

    DROP VIEW 视图名

     假设有某个表结构如下:

    但是由于社保号(ssn)等信息是需要保密的,不能随便查询,  但是某些列又必须查询,此时就可以使用视图把可以查询的列公开出来。

    假如查询这些列:

  • 相关阅读:
    SG函数
    贪心:zoj3953 Intervals
    山东省第四届省赛 E-Mountain Subsequences
    山东省第四届ACM程序设计竞赛A题:Rescue The Princess
    前缀和:CodeForces 932B Recursive Queries
    常用头文件和一些简单的函数
    codeforce 429D. Tricky Function (思维暴力过)
    HDU-5754 Life Winner Bo (博弈论)
    线程池的原理与实现
    运行停止一个线程
  • 原文地址:https://www.cnblogs.com/TangPro/p/3222691.html
Copyright © 2011-2022 走看看