SQL 表连接操作全解析
1. 避免大表的 CROSS JOIN 查询
在处理大表时,要避免使用 CROSS JOIN 查询。例如,两个各有 250,000 条记录的表进行 CROSS JOIN,会产生 625 亿行的结果集,这会对服务器造成巨大压力。不过,CROSS JOIN 也有其实际用途,比如生成创建检查表的数据,像为仓库中的每种衬衫款式提供所有颜色选项。
2. 使用 NULL 查找缺失值的行
在挖掘数据时,揭示表中缺失的数据很有价值。每次连接表时,检查数据质量并了解所有键值是否在另一个表中出现是明智的做法。数据不一致可能由多种原因导致,如笔误、数据库输出不完整或数据随时间变化等。
对于少量数据,可以直接查看数据来查找缺失值。但对于大表,需要更好的策略,即使用关键字 NULL 过滤显示所有无匹配的行。
在 SQL 中,NULL 是一个特殊值,表示没有数据或数据未知。它与 0 或空字符串不同,0 和空字符串可能有意外的含义,而 NULL 可跨数据类型使用。
当 SQL 连接返回空行时,这些列的值为 NULL。可以使用 IS NULL 过滤出缺失值,示例代码如下:
SELECT *
FROM schools_left LEFT JOIN schools_right
ON schools_left.id = schools_right.id
WHERE schools_right.id IS NULL;
此查询结果只显示左表中在右表无匹配的行:
| id | lef
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



