16. 创建高级联结

1. 使用表别名

  1. SQL还允许给表名起别名。

    1. 缩短SQL语句;
    2. 允许在单条SELECT语句中多次使用相同的表。
  2. img
  3. 表别名只在查询执行中使用。与列别名不一样,表别名不返回到客户机。

2. 使用不同类型的联结

2.1. 自联结

img

2.2. 自然联结

  1. 自然联结排除多次出现,使每个列只返回一次。
  2. 然联结是这样一种联结,其中你只能选择那些唯一的列。这一般是通过对表使用通配符(SELECT *),对所有其他表的列使用明确的子集来完成的
  3. img

2.3. 外部联结

img
  1. 联结包含了那些在相关表中没有关联行的行。这种类型的联结称为外部联结。
  2. 外部联结语法类似。为了检索所有客户,包括那些没有订单的客户,可如下进行:
  3. img
  4. 这条SELECT语句使用了关键字OUTER JOIN来指定联结的类型(而不是在WHERE子句中指定)。但是,与内部联结关联两个表中的行不同的是,外部联结还包括没有关联行的行。在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)。
  5. 为了从右边的表中选择所有行,应该使用RIGHT OUTER JOIN,
  6. img

3. 使用带聚集函数的联结

img
img

16. 创建高级联结
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/16-创建高级联结/
作者
Binbo
发布于
2024年11月27日
许可协议