1. 程式人生 > >資料庫空值陷阱

資料庫空值陷阱

關係資料庫,無論是Mysql、Sql server、Oracle,都會有空值,資料庫的空值設計的目的,是為了不佔用儲存空間,與程式語言null相對應,但儲存的合理性卻帶來了判斷的麻煩,以下我列出幾個陷阱:

1、算數運算中,如果有空值,整個表示式為空,這時可以用IsNull函式來賦予一個預設值(對應的Oracle的nvl或decode函式)

2、關係運算中,如果有空值,則返回false,類似where null <> 2或where null not in(1,2)都是false(對於Oracle更極端,空字串''也是null)

這時可以採用 is null或is not null來判斷

3、空值條件判斷會使索引失效,因此資料庫中儲存關鍵查詢欄位時,儘量避免採用null值儲存