2012-08-28 91 views
1

有人可以告诉我数据库中如何表示NULL值。我假定大多数数据库必须使用相同的NULL值。如果不是这样,您能否告诉我至少一个实现。空值表示

我已经使用这个没有太大的成功。

+0

您可能想[检查此](http://weblogs.sqlteam.com/mladenp/archive/2007/09/06/How_does_SQL_Server_really_store_NULL-s.aspx)。 –

+0

谢谢。那正是我需要的。 – heboy

回答

1

我假设大多数数据库必须使用NULL值相同的表示。

我不会假设这一点,因为数据库人员对如何使布局(以及其他任何方面)尽可能高效投入了很多思考。有一个很好的机会,其中一个人对其他人有不同的看法。

我知道SQLServer和PostgreSQL每行都使用一个空位图。我知道它在PostgreSQL中是可选的 - 如果没有可为空的字段,则完全跳过,并且不知道SQLServer是否如此。

因此,例如第三和第九个字段为空的十列行可以具有0000000100000100 = 0x0103的位图条目。或者,也许这是另一种方式(0010000010000000 = 0x2080),我真的不知道。

虽然我不认为它是真的。

0

你为什么需要“NULL”? 最好不要使用它,因为查询可能会搞砸。

你试过这个吗? http://databases.about.com/cs/sql/a/aa042803a.htm

+0

其实我想知道它在sql中的表示形式。我正在努力研究不同数据库的实现细节。 – heboy

+0

说你最好不要使用null也是愚蠢的。如果你需要null,并且不使用null,那么最终会出现一个奇怪而复杂的尝试来表示null。 –

+0

更好的不要用我的意思是避免它。当然,如果你需要它使用它。 –