有人能告诉我NULL
值在数据库中是如何表示的吗?我假设大多数数据库必须对值使用相同的表示形式。NULL
如果不是这样,你能告诉我至少一个实现吗?
我用谷歌搜索了这个,但没有成功。
我假设大多数数据库必须对 NULL 值使用相同的表示。
我不会假设这一点,因为数据库人员对如何使布局(以及其他所有内容)尽可能高效进行了很多思考。他们中的一个很有可能对其他人产生不同的看法。
我知道 SQLServer 和 PostgreSQL 每行都使用一个空位图。我知道它在 PostgreSQL 中是可选的 - 如果没有可为空的字段,则完全跳过,并且不知道 SQLServer 是否属于这种情况。
因此,例如,第 3 和第 9 字段为空的 10 列行可能具有0000000100000100
=的位图条目0x0103
。或者可能是相反的 ( 0010000010000000
= 0x2080
) ,我真的不知道。
不过,我不会认为任何其他数据库都是如此。
为什么你需要“NULL”?最好不要使用它,因为查询可能会搞砸。