1. 程式人生 > >數據庫表字段,DEFAULT NULL與NOT NULL DEFAULT

數據庫表字段,DEFAULT NULL與NOT NULL DEFAULT

什麽 whether stp spa pos tab nal values com

為什麽要把字段設置成not null 呢?

1、空值是不占用空間的

2、mysql中的NULL其實是占用空間的,下面是來自於MYSQL官方的解釋

“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”

空和null查詢的條件也是不一樣的,所有最好設置not null!

如果一個表字段中含有NULL的數據(NULL表示可以為任何值),那麽,SQL Server在做數據庫比較操作的時候,會使用三值邏輯(TRUE,FALSE,UNKNOWN),而不是平時的二值邏輯(TRUE,FALSE)。因此,在做數據庫設計的時候,我們都要求盡量將表不要設置為NULL類型,如果業務要求需要有空值,我們盡量用實際的默認值來代替NULL(int我們用0,字符串可以是空串等),這樣SQL Server在做比較運算就不會使用到相對復雜的三值邏輯,而采用二值邏輯。

數據庫表字段,DEFAULT NULL與NOT NULL DEFAULT