再看看 SQL 中的 null
💡
原文中文,约3600字,阅读约需9分钟。
📝
内容提要
NULL 与任何值运算结果均为 NULL。在查询中,使用 IS NULL 或 IS NOT NULL 处理 NULL 值,聚合函数如 avg 会忽略 NULL,coalesce 可提供默认值。NULLIF 函数可将相等值转换为 NULL。在 PostgreSQL 中,NULL 以二进制形式传输,并通过位图标记和存储。
🎯
关键要点
- NULL 与任何值的运算结果都是 NULL。
- 对于包含 NULL 值的列,使用 IS NULL 或 IS NOT NULL 进行处理。
- IS 操作符可以用于布尔值,IS NOT 提供更精确的不等于操作。
- 在字符串连接中,使用 || 运算符时,任何一项为 NULL 则结果为 NULL,而使用 concat 函数时,NULL 会被忽略。
- 在布尔逻辑中,NULL 代表未知,与真和假构成三值集合。
- 在聚合函数中,NULL 值会被忽略,使用 coalesce 函数可以为 NULL 提供默认值。
- NULLIF 函数可以将相等值转换为 NULL,主要用于将零值转换为空值。
- 在 PostgreSQL 中,NULL 值以二进制形式传输,使用 len = -1 表示 NULL 值。
- 当行中有任一列值为 NULL 时,行头会标记为 HEAP_HASNULL,使用位图存储 NULL 情况。
❓
延伸问答
在 SQL 中,如何处理 NULL 值?
可以使用 IS NULL 或 IS NOT NULL 来处理 NULL 值。
NULL 值在聚合函数中会如何影响结果?
在聚合函数中,NULL 值会被忽略,例如 avg 函数会忽略 NULL 值。
什么是 COALESCE 函数,它的作用是什么?
COALESCE 函数可以接受多个参数,返回第一个非 NULL 的值。
NULLIF 函数的用途是什么?
NULLIF 函数用于将两个相等的值转换为 NULL,常用于将零值转换为空值。
在 PostgreSQL 中,NULL 值是如何存储的?
NULL 值在 PostgreSQL 中以二进制形式传输,并通过位图标记和存储。
在布尔逻辑中,NULL 值的表现是什么?
在布尔逻辑中,NULL 代表未知,与真和假构成三值集合,运算结果通常为 NULL。
➡️