PostgreSQL 取别名时可以不加AS,直接加个空格就可以
如 FROM tablename AS t1 JOIN tablename2 AS t2
与 FROM tablename t1 JOIN tablename2 t2
是相同的
在连接时,应使外键=主键
将多个表联合操作,可以使用JOIN来联合,直接使用 JOIN就是INNER JOIN 只有左右两表条件都满足的数据才会返回,而外链接有三种 LEFT JOIN(左连接)、RIGHT JOIN(右连接)和OUTER JOIN(全连接),一般情况下只使用左连接,右连接可以改写为左连接
介绍一个简单的规则:当数据库执行该查询时,它先执行连接和 ON 条件中的指令。将其看做构建新的结果集,然后使用 WHERE 条件来过滤该结果集。
这个示例是LEFT JOIN这一事实很重要。因为内连接仅返回两个表格中匹配的行,将此过滤器移到内连接的 ON 条件中将与使其保留在 WHERE 条件中产生的结果一样。
SELECT DISTINCT可以在查询中去重
主键和外键
你学习了在连接数据库中的表格时与主键和外键相关的关键要素:
主键 - 对于表格中的每行都是唯一的。主键通常是数据库中的第一列(就像 Parch & Posey 数据库中每个表格的 id 列)。
外键 - 是出现在另一个表格中的主键,允许行不是唯一的行。
数据库的数据设置非常重要,但通常不是数据分析师的职责。这一过程称为数据库规范化。
JOIN
在这节课,你学习了如何使用 JOIN 组合多个表格的数据。你将最常用到的三个 JOIN 语句为:
- JOIN - 一种 INNER JOIN,仅获取在两个表格中都存在的数据。
- LEFT JOIN - 用于获取 FROM 中的表格中的所有行,即使它们不存在于 JOIN 语句中。
- RIGHT JOIN - 用于获取 JOIN 中的表格中的所有行,即使它们不存在于 FROM 语句中。
还有几个没有讲解的高级 JOIN,它们仅适用于非常特定的情况。UNION 和 UNION ALL、CROSS JOIN 和比较难的 SELF JOIN。