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

Posted 鴻飛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表字段,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的主要内容,如果未能解决你的问题,请参考以下文章

如何修改表中的字段约束条件(类型,default, null等)

DB2 创建表的时候,字段后面not null default 和not null with default有啥区别

postgresql----数据库表的约束----NOT NULL,DEFAULT,CHECK

Mysql 表自动填充字段

字段的约束条件

Oracle数据库常用语句