天天看点

mysql 全连接_MySQL连接查询

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

mysql 全连接_MySQL连接查询

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

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

l 内连接

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

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

mysql 全连接_MySQL连接查询

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

mysql 全连接_MySQL连接查询

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

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

mysql 全连接_MySQL连接查询

l 左\右外连接

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

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

mysql 全连接_MySQL连接查询

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

执行结果如下:

mysql 全连接_MySQL连接查询

l 全连接

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

两个表的全连接结果如下

mysql 全连接_MySQL连接查询

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

mysql 全连接_MySQL连接查询
mysql 全连接_MySQL连接查询

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

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

mysql 全连接_MySQL连接查询

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

l 其他写法

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

mysql 全连接_MySQL连接查询

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

最后我们在工作中除了经常使用MySQL之外还有其他的常用的数据库,比如Oracle等,在后续的分享中我会对MySQL和Oracle中的区别进行科普,让我们能更好的理解数据库。

继续阅读