zoukankan      html  css  js  c++  java
  • SQLServer基础(六)

    第七章、表连接
    7.1、表连接简介
         关键字Join,将多个表按照彼此间关系连接成一个结果集,结果是将多个表合成一个表输出,复合查询只能出一个表
         主流数据库支持的一般有:交叉连接cross join;内连接inner join;联合连接union join。
    7.2、内连接(inner join)
         inner join 关联表名 on 连接条件,最好字段前加上表名,比较明确要显示的字段是哪一个表的,如果表名较长,可以用别名,方法是在表后面写上别名
         客户姓名为Tom的客户所下的订单:select T_Order.FNumber,T_Order.FPrice,T_Customer.FName from T_Order Inner join T_Customer on FCustomerId = T_Customer.FId where T_Customer.FName='Tom'
         别名:select o.FNumber,o.FPrice,c.FName from T_Order o Inner join T_Customer c on FCustomerId = T_Customer.FId where c.FName='Tom'
    7.3、不等值连接
         连接条件:小于<,大于>,不等于<>,like,between and。
    7.4、交叉连接
         交叉,是叫表中记录想结合,最后记录数为表a个数*表b个数;交叉简单,不包含on,包括:显示+隐式。
         隐式连接(数据库都支持,直接用隐式即可):只要在select语句的from语句后将要进行交叉的表名列出即可
         ex:select c.FId,c.FName,c.FAge,o.FId,o.FNumber,o.FPrice from T_Customer c,T_order o
         显示连接:cross join 类似inner join
         select c.Fid,c.Fname,c.Fage,o.FId,o.FNumber,o.FPrice from T_Customer c cross join T_order o
    7.5、自连接
         在一个表内寻找数据,进行相应的比较和限制条件,达到最终的数据,方法:起代号不同。
         表与本身相连接,自连接。
         select o1.FNumber,o1.Fprice,o1.FTypeid,o2.FNumber,o2.Fprice,o2.FTypeid from T_Order o1 inner join T_Order o2 on o1.FTypeid=o2.FTypeid and o1.FId<>o2.FId
    7.6、外连接
         外部连接主要就是用来解决空值匹配问题的。与内部连接几乎一样,区别就是对空值的处理,外部连接不需要两个表具有匹配记录,这样就可让表中记录总是放在结果集中。
         外部连接:右外部连接right outer join;左外部连接left outer join;全外部连接 full outer join。
         三者不同:左(右)外部连接返回左(右)表中不符合连接条件的数据;
                   全部返回两个表中不符合连接条件的数据=左+右。
         join左侧的表示左表,join右侧的表示右表。
    7.6.1、左外部连接(右,全一样)
         在左外部连接中,左表中所有记录都会显示在结果集中,无论是否在右表中存在匹配记录
         select o.FNumber,o.FPrice,o.FCustomerId,c.FName,c.Fage from T_Order o left outer join T_Customer c on o.FCustomerId=c.FId
    7.7、联合连接union join
         一般没啥用,在一些数据库中不支持full outer join,比如MySql,就是讲左右联合起来,用union
  • 相关阅读:
    Python记录12:迭代器+生成器+生成式
    Python记录11:叠加多个装饰器+有参装饰器
    Python记录10:模块
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
  • 原文地址:https://www.cnblogs.com/shadow-fei/p/3543114.html
Copyright © 2011-2022 走看看