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

表联结

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)
【MySQL 学习日志】不同类型的表联结_第1张图片

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

外联结

  • 联结包含了那些在相关表中没有关联行的行,这种联结称为外联结。
    【MySQL 学习日志】不同类型的表联结_第2张图片

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

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

  • 使用规则

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

作业

【MySQL 学习日志】不同类型的表联结_第3张图片

你可能感兴趣的:(学习日志)