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联合

 

 

 

 

 

练习

 

 

 

 

 

posted @   蓝色森林lin  阅读(701)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示