mysql 全连接_MySQL连接查询

数据库在我们的测试工作中,用到最频繁的就是查询了,而在查询中又数连接查询使用最多,对于小白来说连接查询又是他们的难点,本文就MySQL中的连接查询,单独给大家科普一下。

036860f8f937f178b93f756fc72c8ec2.png

大家都知道,在项目中的数据组成往往是复合的,所以单独的一张表中的数据难以支撑数据的完整显示,所以这个时候就需要用到连接查询,把多个表中的数据联合起来显示,以达到我们的预期。

接下来我们分别学习内连接、左\右外连接、全连接。

内连接

显示左表及右表符合条件的记录(这里的左表和右表,你可以理解为TESTA表和TESTB表)。

示例:现在有TESTA表和TESTB表,表中的数据如下: 

fdeecea81eadbf097e2f5b85d1a78287.png

其中1、2是TESTA表独有的,3、4是共有的,5、6是TESTB表独有的,那我们使用内连接的数据显示结果如下(使用关键字INNER JOIN……ON)。

dd230750b712c8f196fe14ee63c37b42.png

从结果来看,只显示了两个表共有的数据。

当然内连接中的INNER可以省略,它们执行结果是一样的:

dbbc7f7973d0b34735a3f9cf1918471c.png 

\右外连接

左连接是显示左表(TESTA表)的全部记录和右表(TESTB表)符合连接条件的记录,其中右表不符合条件的数据显示为NULL。

我们还是用上面的两个表示例:

e1254865f240d2c066757f3b3a3405fe.png

当然右连接反之:显示右表(TESTB表)的全部记录和左表(TESTA表)符合连接条件的记录,左表不符合条件的数据显示为NULL。

执行结果如下:

c97dee761c887f6c2a38a61ac7f50733.png 

全连接

显示左表(TESTA表)的全部记录和右表(TESTB表)的全部记录,两个表中没有的数据显示为NULL。

两个表的全连接结果如下

a352780fcce79e4726419d82592ac545.png

  当然其中左/右外连接有可以叫左/右连接,所以语法中的OUTER关键字是可以省略的,如下

04e789114af9503b11d740aeec728c7e.png

cb236f85a7ba7c5e815cdaa4950cdc4c.png

可以看出去掉后,它们的运行结果一致

当然全连接中的OUTER也可以去掉,运行的结果也是一致的

5be93ad1a81e7899a25c5f83c1ab8d5a.png

只不过在工作中很少有听到全外连接的说法。

其他写法

内连接可以写成一种全量数据的等值连接

e9a36dfab8e50778cd802f82477fc03e.png

结果可以看出,它们的运行结果一致

最后我们在工作中除了经常使用MySQL之外还有其他的常用的数据库,比如Oracle等,在后续的分享中我会对MySQL和Oracle中的区别进行科普,让我们能更好的理解数据库。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值