【MySQL 学习日志】不同类型的表联结

本文深入探讨了SQL中的表联结技术,包括简单的联结、自联结、外联结以及UNION的使用方法。讲解了如何通过联结操作整合来自不同表的数据,以及如何利用别名简化SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表联结

1.MySQL别名

  • 在使用过程中,我们可以创建计算字段来得到需要的显示结果,并使用别名来进行引用。也就是说,计算字段其实并不是表中的原有字段,而是为方便使用而创建的。
    在这里插入图片描述
    在这里插入图片描述

  • 图一:select语句生成一个新字段,同时将其命名为name_sala。别名有时也叫导出列。

  • 图二: 表别名,用来缩短SQL语句。

2.表联结

SQL最强大的功能之一就是能在数据查询的执行中联结(join)表。联结是利用 SQL的 SELECT能执行的最重要的操作,很好地理解联结及其语 法是学习 SQL的极为重要的部分。

将数据分解为多个表中便于存储的同时,查询起来也更麻烦,因此需要使用联结功能。

1)简单联结
在这里插入图片描述
注意:

  • 当检索两张表中都有的字段时,需要明确字段来源,否则会报错;
  • where语句给出匹配条件。否则,返回的结果为笛卡尔积, CROSS JOIN(形成行*行的复杂数据结果);
  • 当然,除了上面的这种简单格式,我们也可以使用标准格式语句:
SELECT salary.id,sex,class
FROM salary INNER JOIN courses
ON salary.id=courses.id;
  • 这里on语句的作用和where语句一致。
  • 对多个表进行联结是,可以使用AND语句。

2)高级联结

自联结(self-join)
在这里插入图片描述

  • 这里检索的是同一张表,将其分别命名为c1,c2。
  • select语句需要明确指出表名,否则会报错。
  • 自联结通常作为外部语句,用来替代从同一表中检索数据的子查询语句,因为这样查询速度更快。

外联结

  • 联结包含了那些在相关表中没有关联行的行,这种联结称为外联结。
    在这里插入图片描述

  • 左外联结显示join左边表的全部内容,右外联结相反。

3)UNION
UNION关键字分隔两条或以上SELECT语句,并把输出组合成一个查询结果集。

  • 使用规则

UNION必须由两条或两条以上的 SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合四条SELECT语句,将要使用三个UNION 关键字)。
UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过,各个列不需要以相同的次序列出)。
列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型(例如,不同的数值类型或不同的日期类型)。

作业

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值