• 视图


    视图与表

    视图是一个虚拟表,即视图所对应的数据不进行实际存储。数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

    视图一经定义以后,就可以像表一样被查询,修改,删除和更新。不过不建议对视图进行修改,删除和更新的操作。视图主要还是用来做查询用的。

    视图的优点:

    • 为用户集中数据,简化用户的数据查询和处理
    • 屏蔽数据库的复杂性
    • 简化用户权限管理
    • 便于数据共享
    • 可以重新组织数据以便输出到其他应用程序中

    使用视图注意事项:

    • 只有当前数据库才能创建视图
    • 视图不能与表同名
    • 不能把规则,默认值或触发器与视图关联
    • 不能在视图上建立任何索引,包括全文索引

    创建视图:

    CREATE VIEW CS_KC WITH ENCRYPTION
    AS
    SELECT XS.学号,课程号,成绩
    FROM XS, XS_KC
    WHERE XS.学号 = XS_KC.学号 AND 专业名 = '计算机'
    WITH CHECK OPTION
    

    WITH ENCRYPTION: 说明存储CREATE VIEW语句时进行加密。

    WITH CHECK OPTION: 指在视图上所进行的修改都要符合select_statement所指定的限制条件

    例子2:创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg).

    CREATE VIEW CS_KC_AVG(num, score_avg)
    AS
    SELECT 学号,AVG(成绩)
    FROM CS_KC
    GROUP BY 学号
    

    SQL UNION 操作符
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    SQL UNION 语法
    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

    SQL UNION ALL 语法
    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2
    另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
    下面的例子中使用的原始表:
    Employees_China:
    E_ID E_Name
    01 Zhang, Hua
    02 Wang, Wei
    03 Carter, Thomas
    04 Yang, Ming

    Employees_USA:
    E_ID E_Name
    01 Adams, John
    02 Bush, George
    03 Carter, Thomas
    04 Gates, Bill
    使用 UNION 命令
    实例
    列出所有在中国和美国的不同的雇员名:

    SELECT E_Name FROM Employees_China
    UNION
    SELECT E_Name FROM Employees_USA
    结果
    E_Name
    Zhang, Hua
    Wang, Wei
    Carter, Thomas
    Yang, Ming
    Adams, John
    Bush, George
    Gates, Bill

    注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。
    UNION ALL
    UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。

    SQL Statement 1
    UNION ALL
    SQL Statement 2
    使用 UNION ALL 命令
    实例:
    列出在中国和美国的所有的雇员:

    SELECT E_Name FROM Employees_China
    UNION ALL
    SELECT E_Name FROM Employees_USA
    结果
    E_Name
    Zhang, Hua
    Wang, Wei
    Carter, Thomas
    Yang, Ming
    Adams, John
    Bush, George
    Carter, Thomas
    Gates, Bill

  • 相关阅读:
    算法与数据结构9
    算法与数据结构8
    数据结构与算法7
    数据结构与算法6
    计算机视觉(七)
    计算机视觉(六)
    计算机视觉(五)
    vscode 创建java项目
    vue 访问API接口
    vscode+vue 框架搭建
  • 原文地址:https://www.cnblogs.com/herbert/p/1773463.html
Copyright © 2020-2023  润新知