数据库的null值和空值的区别

空值是不占用空间的
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列在行中需要额外的空间来记录其值是否为NULL。 对于MyISAM表,每个NULL列都多加一位,四舍五入到最接近的字节。”
来看下实际操作吧。

两种值的搜寻方式也不太一样。这是原sql数据:
数据库的null值和空值的区别
查询非空的值时,是查的出005号:
数据库的null值和空值的区别
查询空值时:数据库的null值和空值的区别
单独查询005号应该是:数据库的null值和空值的区别
所以总结下来,空值其实不是空的,null是空的,如果在设置表格的时候设置not null,可以插入空白,但是不能不插入。
插入时的区别:
INSERT INTO test.teacher (tid, tname) VALUES(‘005’, ‘’);
INSERT INTO test.teacher (tid, tname) VALUES(‘006’, NULL);