数据库学习一:left join & right join & inner join

本文详细介绍了SQL中的不同连接类型,包括内连接、左连接、右连接及全连接,并解释了where与on的区别,以及where与inner join的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.内外连接

  1. 内连接:inner join。只显示各表之间与关联条件(on)相匹配的列。
  2. 外连接:
    1. left join。以左表为基础。显示左表所有 记录,不管是否与关联条件(on)相匹配;而右表只显示与关联条件相匹配的记录,不匹配的以null字符代替。如果右表多条数据关联到左表的一条数据,left join会查出多条。
    2. right join。以右表为基础。显示右表所有记录,不管是否与关联条件(on)相匹配;而左表只显示与关联条件相匹配的记录,不匹配的以null字符代替。
    3. full join。全连接。显示列表中的所有列,不匹配的以null字符代替。Mysql不支持full join,用left join union right代替。

               a表                                           b表

              a left join b 

              a right join b

              a full join b 

 

 

二. where 与 on

  1. on:关联条件。
  2. where:查询条件。

     a left join b where 

     a right join b where

 

 

三. where 与 inner join

     a inner join b

     a b where   

  1. WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。
  2. INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接。
  3. WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值