mysqlnull和空的区别

1.NULL值不占用空间。
2、mysql中的NULL实际上是占用空间的。

技术分享|MySQL默认值选型(是空,还是NULL)

在数据库设计中,开发人员经常会困惑是使用空值“”还是NULL来给字段赋值。
本文将深入分析NULL和null值的区别以及MySQL中的特殊处理方法,帮助开发者做出更明智的选择。
NULL在MySQL中表示未知或不存在的值,是一种特殊的数据类型。
字段是否允许NULL值以及默认值是否为NULL有很多种情况:1、存储空间差异:对于允许NULL值的字段,每条记录都会被赋予一个NULL标志,该标志并不占用真正的存储空间。
如果所有字段都不为NULL,则该标志不存在。
有一篇文章讨论了存储NULL值的方法,可供参考。
2.运算中NULL值的问题:对于数值字段,当允许NULL值时,在进行min、max、sum、加减、orderbygroup、distinct、等运算时NULL值会被忽略等等,影响结果的准确性。
例如,当对INT列进行操作时,NULL值可能会导致平均值计算出意外的结果。
加减NULL,结果还是NULL。
当按升序检索时,NULL值将首先列出。
在执行groupby和distinct时,NULL被视为相同的值。
3.字符类型处理:在字符类型字段中,NULL值在视觉上是无法区分的,很难与字符串'NULL'区分开来。
计算包含NULL的字段值时,NULL不包含在统计中。
使用length函数计算NULLVARCHAR的长度时,返回意外结果。
总结:NULL值处理比较特殊,可能与预期结果不一致,可能会影响项目运行。
因此,建议避免在默认值中使用NULL。
虽然NULL和空值在存储空间和索引性能方面可能没有太大区别,但考虑到NULL特殊属性可能引入的不确定性,建议选择空值而不是NULL作为默认值。