SQL基础语法--3.内连接
课程链接分享:https://www.bilibili.com/video/BV1UE41147KC?p=30&share_source=copy_web
三、内连接
(一)内连接
(在多张表中选取列)
因为顾客表中的手机号码、邮箱、地址等信息可能会频繁发生改动,如果一个顾客下了多个订单,就会频繁地改动,耗时耗力。为了避免此种情况,我们把顾客表和订单表分开放,这样就只需要改动顾客表中的信息。
现在我们想要输出带有顾客信息的订单,可以将两表连接——内连接
(二)跨数据库连接
(三)自连接
将一张表与他自己连接,即使是同一张表也需要取别名区分!!!
(四)多表连接
连接多个表,直接在JOIN ON语句后再写一句JOIN ON 语句
(五)复合连接条件
如果我们无法用单一列识别某张表的行时,可以用两列结合唯一标识这个表。
当我们要将这个表与其他表连接时,应该使用多个条件连接这两张表。
JOIN 此表名 ON 条件一 AND 条件二
(六)隐式连接语法
不推荐使用,仅作了解
(七)外连接
不管条件正确与否,都会返回左/右表的全部行
(八)多表外连接
不建议使用右连接,因为多表连接会让情况变得复杂。
(九)自外连接
自连接+外连接
(十)USING子句
与ON子句作用相同但是USING 子句更简洁
USING() 括号内直接写上相连接的两个表的相同的列名
演示如下:
我们不能在连接这个结果和订单状态表的时候使用这个技巧,因为order_statuses表中的状态“status”在orders表中叫做“order_status_id”
Q1:如果相连接的两个表中的相同列名字不一致怎么办?
凉拌,不能使用using子句咯。
Q2:如果相连接的两个表中需要两个列来唯一标识它的表怎么办?
Using(列一, 列二)用逗号隔开咯
(十一)自然连接 NATURAL JOIN
仅作了解
(十二)交叉连接
(十三)Unions联合
练习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构