环境:
SQL工具(如Navicat,SQLyog)
MySQL驱动
全局总结:
- 左连接:关注左边,右边没有就为空。
- 右连接:关注右边,左边没有就为空。
- 内连接:返回交集
必备:
两张或多张表格
一,知识学习(3W1H方法)
-
1,what(左连接是什么)
- LEFT JOIN 关键字会从左表 (stu) 那里返回所有的行,即使在右表 (book) 中没有匹配的行。
-
2,where(左连接在哪里?代码上是怎么用的?用在哪里?)
-
LEFT JOIN是关键字 ,它的存在形式就是sql里
-
代码用法
-
SELECT stu.sutname,book.booname FROM stu LEFT JOIN book ON stu.stuid = book.bookid
-
用在联表查询,多个有联系的表
-
-
3,why(左连接,为什么要用左连接?用了它有什么效果?)
- 多个表之间有一定的关系,比如A表是记录买书人的信息,B表是记录被买的书的信息(如价格,数量等),用左连接可以把AB两个表的信息联合成一个C表,C表可以显示谁买了书,买了多少数量,这样就可以把AB两个表中我们想知道的信息整合到一起,对内容一目了然
-
4,how(左连接原理,它怎么工作的?)
- 先查询出左表的内容,然后根据条件以左表的记录去查右表,查到几条显示几条,没有查到默认为null,查询的字段就是select中的字段贴到左表后.
二,练习
- 自建数据表,写代码,保证代码准确,并且正确运行
- 查询结果
总结:
-
个人认为
- SELECT关键字后面,跟着是的查询出来要保留的属性字段;
- FROM关键字后面,跟着表名(stu表),意思是以该表的属性字段(stu.stuid)为查询基准,该表属性字段对应被查询表(book表)属性字段(book.bookid)的全部查出来,没有即为null
仔细阅读并理解以上左连接介绍,最好动手操作一下,等你彻底理解左连接
右连接,内连接,其实都差不多,一通全通,接下来分别介绍一下
右连接:
什么是右连接:
- RIGHT JOIN 关键字会从右表 (book) 那里返回所有的行,即使在左表 (stu) 中没有匹配的行。
右连接有什么作用:
- 右连接可以帮我们在多表之间,把所需的内容按要求整合到一起,对结果一目了然
表格:
右连接(RIGHT JOIN)实例:
现在,我们希望列出所有的书名,以及购买它们的人 - 如果有的话。
您可以在sql工具中使用下面的 SELECT 语句:
SELECT stu.sutname, book.bookname
FROM stu
RIGHT JOIN book
ON stu.stuid = book.bookid
结果集:
内连接:
什么是内连接?
- INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 “stu” 中的行在 “book” 中没有匹配,就不会列出这些行
内连接有什么作用:
- 内连接可以帮我们在多表之间,把所需的内容按要求整合到一起,对结果一目了然
表格:
内连接(INNER JOIN)实例
现在,我们希望列出所有人的购书情况。
您可以使用下面的 SELECT 语句:
SELECT stu.sutname, book.bookname
FROM stu
INNER JOIN book
ON stu.stuid = book.bookid
结果集:
还是那句话
-
左连接:关注左边,右边没有就为空。
-
右连接:关注右边,左边没有就为空。
-
内连接:返回交集