浅谈数据库中的连接查询方式

 欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

1 问题描述

在数据库的学习中,我们知道数据库涉及到多表查询的时候需要用到不同的连接查询方式,SQL中将连接分成:内连接、外连接、自然连接、交叉连接;其中内连接与外连接是比较常用的连接。内连接:从左表中取出数据去跟右表中的所有记录进行匹配:匹配结果必须是某个条件在左表和右表中的结果相同才会保留,否则不保留。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给我们带来很大的灵活性,可以增加新的数据类型。之后通过连接进行查询。接下来将简单的谈一谈我所理解的数据库的几种连接查询方式。

2 问题分析

通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

连接查询可分为三种:内连接、外连接和交叉连接。内连接使用比较运算符进行表间某()列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。       外连接分为左外连接、右外连接、和全外连接三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

3 解决方案 

内连接(inner join join

       内连接是等值连接,它使用“=><<>”等运算符根据每个表共有的列的值匹配两个表中的行

查询语句:

浅谈数据库中的连接查询方式

左连接(left join left outer join

      左连接又称左向外连接,查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示

查询语句:

浅谈数据库中的连接查询方式

右连接(right join 或 right outer join)

       右连接也成右向外连接,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则用空值表示

查询语句:

浅谈数据库中的连接查询方式

完全外连接(full join full outer join

      完全外连接,查询的结果集包括SQL语句中左表和右表的所有行。如果某行在另一个表中没有匹配行时,则用空值表示。

查询语句:

浅谈数据库中的连接查询方式

4 总结

 INNER JOIN: 如果查询的表中都有至少一个匹配,则返回行

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行

UNION:合并多个SELECT 语句的结果集

更多精彩文章:

 

浅谈数据库中的连接查询方式

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发