2012-08-28 90 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

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