zoukankan      html  css  js  c++  java
  • MySQL集合操作类型

    SQL语言包含3个集合操作符(union、intersect、expect)以执行各种集合操作。
    此外,每个集合操作符可以有两种修饰符:一个表是包含重复项,另一个表是去除重复项(但不一定时所有的重复项)。

    union操作符

    union与union all操作符可以连接多个数据集,它们的区别在于union对连接后的集合排序并去除重复项,而union all保留重复项。

    使用union all 得到的最终数据集的行数总是等于所要连接的各集合的行数之和,该操作时最易于执行的集合操作(从服务端的观点看),因为服务器不需要检查重复的数据。例:

    SELECT 'IND' type_cd, cust_id, lname name 
    FROM individual
    UNION ALL 
    SELECT 'BUS' type_cd, cust_id, name 
    FROM business;
    

    如果需要连接后的表排除重复行,那么需要使用union操作符来替代union all:

    SELECT emp_id
    FROM employee
    WHERE assigned_branch_id = 2
    AND (title = 'Zifeiy' OR title = 'Zifeiy Wang')
    UNION
    SELECT DISTINCT open_emp_id
    FROM account 
    WHERE open_branch_id = 2;
    

    intersect操作符

    ANSI的SQL规范中定义了intersect操作符来执行集合交操作,但是MySQL6.0还没有支持,不过在Oracle或SQL Server 2008中可以使用它。

    except操作符

    ANSI SQL规范规定了except操作符以执行集合差操作,MySQL 6.0还未实现except操作符。

  • 相关阅读:
    创建型模式
    建造者模式
    抽象工厂模式
    工厂方法模式
    原型模式
    [水]三个日常签到题
    [数]青蛙的约会&Strange function
    [水]三个数学的小技巧题
    Jquery Ajax的使用
    easyui学习记录:combotree的使用
  • 原文地址:https://www.cnblogs.com/zifeiy/p/8807243.html
Copyright © 2011-2022 走看看