SQL表的连接查询

基本语法结构:
SELECT column
FROM join_table
JOIN_TYPE join_table
ON (join_condition)
JOIN_TYPE 为连接类型,可分为:内连接(INNER JOIN)、外连接(OUTER JOIN)、自然连接(NATURAL JOIN)和交叉连接(CROSS JOIN)。

  1. 内连接:INNER JOIN也称为等同连接,返回的结果是两个表中所有相匹配的数据,舍弃不匹配的数据。在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表中包含的两源表行必须满足ON子句中的搜索条件。如果在源表中的行在另一表中没有对应(相关)的行,则该行将被舍掉,不会包括在结果表中。
    内连接使用比较运算符来完成,可分为等值连接(=)和不等连接(">",">=","<","<=","!>","!<","<>") 在这里插入图片描述
    外连接分为:左外连接(left join)、右外连接(right join)和全外连接(full join)

  2. 左外连接:LEFT [OUTER] JOIN,OUTER可省略,返回的结果表中除了包括匹配行外,还包括JOIN关键字左边表的所有不匹配行。缺少的右边表中的属性值用Null表示。
    即:左外连接=内连接+左边表中不匹配的行 在这里插入图片描述

  3. 右外连接:RIGHT [OUTER] JOIN,OUTER可省略,返回的结果表中除了包括匹配行外,还包括JOIN关键字右边表的所有不匹配行。缺少的左边表中的属性值用Null表示。
    即:右外连接=内连接+右边表中不匹配的行 在这里插入图片描述

  4. 全外连接:FULL [OUTER] JOIN,OUTER可省略,返回的结果表中除了包括匹配行外,还包括JOIN关键字左边表或者右边表的所有不匹配行。缺少的左边表或者右边表中的属性值用Null表示。
    即:全外连接=内连接+右边表中不匹配的行+左边表中不匹配的行 在这里插入图片描述

  5. 交叉连接:CROSS JOIN,返回被连接的两个表所有数据行的笛卡尔积,返回的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。在使用CROSS
    JOIN 关键字交叉连接表时,因为生成的是两个表的笛卡尔积,所以不能使用ON关键字,只能在WHERE子句中定义搜索条件。

  6. 自然连接:NATURAL JOIN,是一种特殊的等价连接,它将表中具有相同名称的列自动进行记录匹配。它的缺点是虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配,另外它的一个特点是连接后的结果表中匹配的列只有一个,比如在上面的示意图中,若是自然连接,则表中只有一列C。SQL Sever不支持该连接。

  7. 补充说明:UNION运算符
    标准SQL中,可以使用UNION运算符实现集合并的运算。当UNION运算符执行集合并运算时,自动从结果表中消除重复的行。如果要保留重复元组的话,必须在UNION后加上ALL关键词指明。
    即:UNION ALL
    在这里插入图片描述
    声明:菜鸟学习路上的总结,若有误请您指正,若侵权请您联系我,若转载请您附上链接。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值