① MySQL数据库的表中 NULL 和 空值 到底有什么区别呢
NULL 和 空值 在MySQL数据库的表中,往往被误解为相似的概念。实际上,它们之间存在显着的区别。本文将浅谈NULL与空值的区别。
首先,NULL表示字段中存储的值为NULL状态,而空字符串值表示字段中存储的是空字符('')。
通过测试可以看出,字符串空值('')的长度是0,不占用空间,而NULL值的长度是NULL,实际占用空间。NULL列在行中需要额外空间记录值是否为NULL。
NULL值和空值的插入方式也不同。NULL值查询通常使用is NULL,而空值('')查询可以使用=、!=、等算术运算符。
在count()统计函数中,NULL值不会被计算在内,而空值('')会被计入。
在实际开发中,NULL值和空值('')的选择取决于具体业务场景。在没有特殊需求的情况下,建议使用空字符串值('')。
总结来说,NULL与空值('')在MySQL数据库中各自有着独特的意义与用途。理解它们的区别,有助于在编写代码时更加精准地处理数据。
② 数据库中空值的含义
数据库中空值的含义, 就是相当于 “不知道” 的含义。
例如有一个 员工表。
包含下面这些列:
员工代码 NOT NULL,
员工姓名 NOT NULL,
员工生日,
员工籍贯,
......
其中, 员工代码 与 员工姓名 是 非空的, 那么必须有数据。 不能说 “不知道”。
而 员工生日 与 员工籍贯 是 可以为空的, 那么 允许不写数据, 也就是 可以 “不知道”
例如数据:
员工代码 员工姓名 员工生日 员工籍贯
TESTSH01 张三 NULL 上海
TESTSH02 李四 1988-8-8 NULL