课程: 学习 SQL
免费学习该课程!
今天就开通帐号,24,700 门业界名师课程任您挑!
了解 JOIN 类型
除了我们在上个视频所介绍的, 通过“JOIN”关键词, 实现从多个表格中获取数据, 来满足业务需求。 我们还可以使用其他连接类型。 比如,左连接、内连接等等。 接下来,我们将给大家做细节介绍。 我们先看一下, 下面的“人员”和“省市地区”两个表格, 以通过“JOIN”关键词进行关联。 如果我们输入语句: “SELECT*FROM 人员 JOIN 省市地区”。 这里需要注意一下,“人员”表为左表, “省市地区”为右表, 我们没有任何限定参数的语句。 那么,我们将得到一个“结果表”。 “人员”表中的每一行, 都会与“省市地区”的每一行进行交叉连接。 但我们再观察一下这两个表, 可以看到“人员”表中的 “省份”字段的“鄂”和“豫” 与“省市地区”表中的 “简称”字段的“鄂”和“豫”是相同的。 我们可以根据这些记录, 将两个表关联到一起, 不一定是一一对应的关系。 我们可以看到,右表中的“鄂” 与左表中的两行是相匹配的, 但也存在右表或左表的记录 在另一个表中没有对应的值。 这就是内连接。 内部和外部,指的是记录匹配或记录重叠。 这里面“鄂”和“豫”匹配, 而“浙”和“桂”就不匹配。 所以,“鄂”和“豫”被认为是内部的, 而“浙”和“桂”被认为是外部的。 内连接请求的是重叠的记录。 如果我们输入语句“SELECT*FROM 人员 JOIN 省市地区 ON 人员.省份=省市地区.简称”, 我们会得到一个“结果表”, 其中,只包含两个表格重叠的内容。 我们可以看到, “施贵”的信息和“浙江省”的信息, 都没有出现在“结果表”里。 如果我们想以“人员”为基础, 也就是左表中的每一行,到右表中进行匹配, 匹配上的,我们就返回结果。 比如,“孙强”的省份是“豫”, 在右表中的“简称”字段找到“豫”, 那么,就会返回 “简称”和“省份/直辖市“两个字段值。 如果左表的字段值在右表中没有匹配上, 那么“结果表”中将会返回“Null”。 比如,“施贵”的“省份”是“桂”, 在右表中没有任何匹配, 那么最后的“结果表”中, 右表的“简称”和“省份/直辖市”字段 返回的值就是“Null”。 这就是“左连接”。 我们可以通过输入语句 “SELECT*FROM 人员 LEFT JOIN 省市地区 ON 人员. 省份=省市地区.简称”, 可以得到一个“结果表”。 如果我们想确保…
随堂练习,边学边练
下载课堂讲义。学练结合,紧跟进度,轻松巩固知识。