1.什么是连接查询?
连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
2.连接查询的作用
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询。
3.连接查询有哪些?
- 内连接查询
- 多表连接查询
- 外连接查询
- 连接查询综合运用
内连接查询
内连接查询是一种最常用的连接类型。实际上也就是一种任意条件的查询。
(1)交叉连接(笛卡尔积)
交叉连接又称为“笛卡尔连接”或“叉乘”,它是所有类型的内连接基础。
语法:
select * from 表名 CROSS JOIN 表名
简洁一点的话可以写成:
select * from 表名,表名
交叉连接的实际作用就是把两张标的数据放入到一张表中,实践数据数量就是两张表的数据数量相乘。也可以加入一些条件来满足你所需要的数据。
(2)内连接
内连接是应用程序钟非常常见的连接操作,它一般都是默认的连接类型。内连接基于连接谓词,它将两张表(如A和B)的列组合在一起,产生新的结果表。
语法:
select 列名 from 表名 【INNER】 JOIN 表名 ON 表名.列名=表名.列名 【where 条件】
注释:
【】:这个里面的内容可写可不写。
列名:表格里面的字段名。
表名:表格名字。
这个语法也可以写的更加简单易懂。
如下:
select 列名 from 表名,表名 where 表名.列名=表名.列名
如过where语句里面要写多个条件可以用and来进行连接。
(3)自然连接
自然连接是一种特殊的内连接,它要求相连接的两张表的连接依据必须是相同的字段(字段名相同,字段属性相同。)
语法:
select 列名 from 表名 NATURAL JOIN 表名 【where 条件】
自然连接使用的很少,简单了解一下即可。
多表连接查询
(1)多表连接查询方法
多表连接查询的用途就是方便查询多张表的数据,在合为一张表方便查看。
语法:
select 列名 from 表名 JOIN 表名 ON 表名.列名=表名.列名 JOIN 表名 ON 表名.列名=表名.列名 【where 条件】
还可以继续加别的表,只需要继续加上JOIN ON进行连接即可。
简洁的语法如下:
select 列名 from 表名,表名 where 表名.列名=表名.列名 and 表名.列名=表名.列名
列名中可以进行多个列名的输写,用逗号进行分开即可。表名也一样。
条件也可以进行and连接。
外连接查询
(1)外连接
外连接分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null。;右外连接是左外连接的反向连接,右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为null。
语法:
select 列名 from 表名 LEFT|RIGHT【OUTER】JOIN 表名 ON 表名.列名=表名.列名
选择哪一边的连接方式就是输出哪一边表中的内容。
连接查询综合应用
(1)连接查询中的分组统计
综合使用连接查询、聚合查询和分组查询可以实现很多复杂的查询需求。
这个就是语法的综合运用,如何去使用看你自己需要查询什么,进行一些条件的修改即可。