首页 > 代码库 > 数据库表字段,DEFAULT NULL与NOT NULL DEFAULT

数据库表字段,DEFAULT NULL与NOT NULL DEFAULT

为什么要把字段设置成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