zoukankan      html  css  js  c++  java
  • 视图

    视图与表

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

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

    视图的优点:

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

    使用视图注意事项:

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

    创建视图:

    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

  • 相关阅读:
    HTML DOM 12 表格排序
    HTML DOM 10 常用场景
    HTML DOM 10 插入节点
    HTML DOM 09 替换节点
    HTML DOM 08 删除节点
    HTML DOM 07 创建节点
    022 注释
    024 数字类型
    005 基于面向对象设计一个简单的游戏
    021 花式赋值
  • 原文地址:https://www.cnblogs.com/herbert/p/1773463.html
Copyright © 2011-2022 走看看