MySQL 关于我和连接查询的那些事 (这不是为难我哆啦A梦吗)之细节总结

Posted 憨憨的包

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 关于我和连接查询的那些事 (这不是为难我哆啦A梦吗)之细节总结相关的知识,希望对你有一定的参考价值。

n sum、max 和 min 聚合函数
 
经过我认真的的上课,和勤劳的态度,查漏补缺,总结出以下几点
无非就是对知识点的灵活运用
更何况,重点我也已经帮你们规划好,如下
1,sum、max 和 min 聚合函数
2,avg 和 count 函数
3,分组查询 group by 子句
4,多字段分组和 having 子句
第一就是内连接查询
查询信息的来源如果来自多张表,则必须对这些表进行连接查询。
连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。

      连接查询分为内连接和外连接

无可厚非 交叉连接是内连接的基础,如下

 

select * from line CROSS JOIN vehicle

等价于

select * from line,vehicle

内连接基于连接谓词,它将两张表 ( 如A 和 B) 的列组合在一起,产生新的结果表。内连接查询会将 A 表的每一行和 B 表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。

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

 

SELECT fieldlist FROM table1 [INNER] JOIN table2

ON table1.column1=table2.column2

[where condition]

注意

连接依据的列可能包含 null 值,null 值不与任何值匹配(甚至和它本身)。

语法说明:(比较枯燥,懂的可以跳过)

有人会觉得很难,就小小总结下吧

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”可省略,它为查询条件表达式

续 查询实操:

在连接查询中,为了简化字段列表的显示,一般需要为两张表分别取别名,如本例中分别为表“vehicle”和“driver”取别名“v”和“d”。

如果字段列表中的字段在两张表中是唯一的,则该字段前面不需要加表名前缀,例如本列中的“name” 和“licenseNo”,否则需要加表名前缀,如本列中的“v.vehicleID” “d.vehicleID”等

对的,一般来说,MySQL最难的就是多表查询,掌握多表查询,就掌握了MySQL的重难点

话不多说,直接重点摆上

语法:

SELECT fieldlist FROM table1 JOIN table2 ON table1.column1=table2.column2_1 JOIN table3 on

table2.column2_2=table3.column3 [where condition]

说明

table2 与 table1 和 table3 两两相连。一般通过外键联系

三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两相连的方式实现

那怎么查询

使用两表连接查询语法

 

SELECT fieldlist FROM table1, table2

WHERE table1.column1=table2.column2 [and 其他条件]

推演三表查询

 

SELECT fieldlist FROM table1,table2,table3

WHERE table1.column1=table2.column2_1 and table2.column2_2=table3.column3 [and 其他条件]

如上

而外连接也同样重要

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询

SELECT 字段名称 FROM 表名 1 LEFT|RIGHT|FULL [OUTER] JOIN 表名 2

ON 表名 1. 字段名 1= 表名 2. 字段名 2

“outer”可省略

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记录,还包含左表、右表或左右表中所有的数据记录

总结如此,我想大概也对mysql的连接查询有了印象吧,感兴趣的可以收看我下次知识点总结

以上是关于MySQL 关于我和连接查询的那些事 (这不是为难我哆啦A梦吗)之细节总结的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引那些事

MySQL索引那些事

我和 WebSocket 的那些事

❤️ 我和CSDN的那些事 ❤️

关于HTTP的长连接和短连接那些事

关于MySQL数据库中null的那些事