数据表的查询与管理只是针对数据库中的一个表格进行的查询管理,如果现在我们想要同时的看到两个数据表中的数据的或,需要怎么实现?答案是:使用多连接的方式进行查询
标题中说了SQL中有七种连接的方式,那么具体是哪七种呢?
1、基本连接
2、内连接
3、左外连接
4、右外连接
5、全外连接
6、交叉连接
7、自连接
知道了七种连接是什么了,下面就来初步认识一下这七种连接方式
一、基本连接
1、什么是基本连接?
基本连接又称多表连接,是对多个表内容的查询与连接
2、可遵循的基本原则
- SELECT子句列表中,每个目标列前都要加上基表名称
- FROM子句应包括所有使用的基表
- WHERE子句应定义一个同等连接
3、为什么会有对表连接的存在?
基于数据库的范式理论,数据库的数据查询一个表格未能把信息全部查询出来,所有就涉及了多表连接的查询
二、内连接
1、什么是内连接?
内连接也是多表连接的一种,不过是对多表数据进行查询和连接
2、同样都是多表连接,那有什么区别?
通过查询我们可以看出查询结果是一样的,都是对多表进行查询,不同的是查询的方式和查询时使用的代码的差异
三、外连接、左外连接、右外连接、内外连接
在介绍左外连接、右外连接和内外连接的前提下,我们先来说说什么是内连接?什么是外连接?
内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行
左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。
右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。
全外连接:左外连接 + 右外连接。
四、交叉连接
交叉连接不带WHERE子句
返回被连接的两个表所有数据行的笛卡尔积
返回到结果集合中的数据行数=第一个表中符合查询条件的数据行数*第二个表中符合查询条件的数据行数
语法格式:
- SELECT select_list
- FROM table1 CROSS JOIN table2
- [WHERE search_conditions]
- [ORDER BY order_expression]
五、自连接
自连接顾名思义:自己与自己连接,一对多,即同一个数据表的多表连接
以上是我对这七种连接的理解,如有不合理的或不赞同的可以提出哟!