我是靠谱客的博主 安详水壶,最近开发中收集的这篇文章主要介绍MySQL,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

7.1.1 交叉连接(笛卡尔积)
交叉连接(Cross Join),又称“笛卡尔连接(Cartesian Join)”或“叉乘(Product)”,它是所有类型的内连接的基础。
7.1.2 内连接查询概要
内连接基于连接谓词,它将两张表 ( 如A 和 B) 的列组合在一起,产生新的结果表。
fieldlist:table1 表和 table2 表中的字段列。如果 fieldlist 取两张表所有列,则可用“”代替,此时会出现连接依据列重复,即 table1 表的 column1 与 table2 表的 column2 为重复列。
table1 [INNER] JOIN table2:将 table1 表与 table2 表进行内连接,INNER 可省略。
table1.column1=table2.column2:连接条件,其中 column1 和column2 为table1 表与table2 表的关联列,通常它们为外键列和主键列。
“inner”可省略。
“where condition”可省略,它为查询条件表达式。
注意:连接依据的列可能包含 null 值,null 值不与任何值匹配(甚至和它本身)。
版权声明:本文为CSDN博主「明金同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7.1.3 内连接案例
使用内连接获取所有的线路信息和车辆信息。
车辆表 vehicle 与线路表 line 存在一个连接依据列——lineID。
连接以上两张表,使用内连接并采用“
”作为字段列表

7.1.4 自然连接
******自然连接 (Natural Join) 是一种特殊的内连接,它要求相连接的两张表的连接依据列必须是相同的字段(字段名相同,字段属性相同)。
在自然连接中两张表的所有名称相同的列都将被比较,并且在结果集中把重复的列去掉, 结果集中两张表中名称相同的列仅出现一次。而普通的内连接并不去掉重复的列。
部分数据库不支持自然连接, 如 SQL Server 等。
如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。
7.2.2 多表连接查询应用
示例:获取公交二公司所有司机信息。要求输出司机姓名、身份证、性别和电话。

分析:司机表与车辆表有关联,车辆表又与线路表有关联,线路表有所属公司信息,所以通过连接司机表、车辆表和线路表,可以获得公交二公司所有司机的相关信息。
7.2.3 简单多表连接查询
如果在 FROM 子句中,直接列出所有要连接的表,然后在 WHERE 子句中指定连接条件,此为简单多表查询, 它与内连接功能相同。
7.3.1 外连接查询概念
在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。
根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记录,还包含左表或右表或左右表中所有的数据记录。
版权声明:本文为CSDN博主「明金同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7.3.2 左外连接(LEFT JOIN)
左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。
7.3.3 右外连接(RIGHT JOIN)
右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为 null。
示例:查询所有线路的车辆信息,要求显示车牌号、型号、线路号、起点站和终点站。
7.4.1 连接查询中的分组统计
综合使用连接查询、聚合函数和分组查询可以实现很多复杂的查询需求。
内连接基于连接谓词,它将两张表(如 A 和 B)的列组合在一起,产生新的结果表。具体过程是将 A 表的每一行和 B 表的每一行进行比较,并找出满足连接谓词的组合,当连接谓词被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。

内连接分 3 种:交叉连接、相等连接和自然连接。

最后

以上就是安详水壶为你收集整理的MySQL的全部内容,希望文章能够帮你解决MySQL所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部