• SQL基础学习_06_集合运算和联结


    集合运算

    1. 并集:UNION

        例:

        SELECT shohin_id, shohin_mei
        FROM Shohin
        UNION
        SELECT shohin_id, shohin_mei
        FROM Shohin2;

        将Shohin和Shohin2两张表的shohin_id和shohin_mei两列取并集;

        注意,UNION操作时,列数必须相等,且每列的数据类型应该相同

        保留重复行: UNION ALL

    2. 交集:INTERSECT

        语法和UNION完全相同,但是取的是交集部分

    3. 差集:EXCEPT

        语法和UNION完全相同,取第一张表中有,第二张表中没有的记录

    表的联结

    集合运算会改变记录数(行数),联结就是对两张表的列进行联结,改变的是列数

    1. 内联结: INNER JOIN

        例:

        SELECT TS.tenpo_id, TS.tenpo_mei, TS.shohin_id, S.shohin_mei, S.hanbai_tanka
        FROM TenpoShohin AS TS INNER JOIN Shohin AS S
        ON TS.shohin_id = S.shohin_id

        SELECT子句指定需要连接的列,注意由于SELECT操作时间在FROM之后,所以FROM的别名在SELECT中有效;

        FROM子句指定两个表的名字,并且用INNER JOIN连接;

        ON 子句指定一个表达式,作为联结的桥梁,满足该表达式的记录会联结两个表中的相应列;

        内联结可以使用WHERE子句等SELECT语句进行删选;

    2. 外联结: OUTER JOIN

        外联结相比内联结会显示只在主表中出现的记录;

        例:

        SELECT TS.tenpo_id, TS.tenpo_mei, S.shohin_id, S.shohin_mei, S.hanbai_tanka
        FROM TenpoShohin AS TS RIGHT OUTER JOIN Shohin AS S
        ON TS.shohin_id = S.shohin_id;

        外联结的语法和内联结基本相同,不同的是,外联结使用LEFT、RIGHT来指定主表,

        使用LEFT时,写在左侧的表为主表,使用RIGHT时,写在右侧的表为主表;

    3. 联结三张表以上

        先联结其中的两张表为一张,依次操作直到最后做两张表的联结;

    4. 交叉联结:CROSS JOIN

        交叉联结时,对左侧表和右侧表的每一个记录进行联结,生成一张比较长的表;(笛卡尔积)

       

  • 相关阅读:
    rabbitmq 学习10channel 说明
    ASP.NET中进行消息处理(MSMQ) 一
    ThreadLocal原理及用法详解
    设计模式责任链模式
    枚举详解之EnumSet、EnumMap用法
    设计模式策略模式和工厂模式结合使用
    Java并发编程系列之CyclicBarrier详解
    [解题报告]求平均成绩
    [解题报告]1005 Number Sequence
    [解题报告]1013Digital Roots
  • 原文地址:https://www.cnblogs.com/lyon2014/p/4693829.html
Copyright © 2020-2023  润新知