mysql中NULL和Empty的区别是什么

mysql中NULL和Empty的区别是什么,mysql,Mysql,Mysql中空字符串和空字符串的区别是什么 需要多少存储空间 比如说 在用户表中 name:NULL-它占用多少空间 电话:-它占用了多少空间考虑空值的最佳方式是它有毒 使用NULL执行的任何操作都将生成NULL NULL+任何数字类型都为NULL。NULL concat任何字符串都为NULL 空字符串是长度为0的字符串 例如: mysql> select concat('hello world', null); +-----------------------------+ | conc

Mysql中空字符串和空字符串的区别是什么

需要多少存储空间

比如说

在用户表中

name:NULL-它占用多少空间


电话:-它占用了多少空间

考虑空值的最佳方式是它有毒

使用NULL执行的任何操作都将生成NULL

NULL+任何数字类型都为NULL。NULL concat任何字符串都为NULL

空字符串是长度为0的字符串

例如:

mysql> select concat('hello world', null);
+-----------------------------+
| concat('hello world', null) |
+-----------------------------+
| NULL                        |
+-----------------------------+

mysql> select concat('hello world', '');
+---------------------------+
| concat('hello world', '') |
+---------------------------+
| hello world               |
+---------------------------+

至于节省空间,这取决于定义列的数据类型。

使用NULL有充分的理由,但在行存储中节省空间不是一个理由。如果需要“不知道”占位符,请使用空值;如果您只是想存储一个行为类似于空字符串的空字符串,请继续并存储一个空字符串。如果它是一个VARCHAR列(可能会是),那么它几乎不会占用太多空间。

存储空间不应该是您关心的问题。相反,您应该关注NULL的语义。比如说,我家里有一个玻璃杯,这是你一生中从未见过的。如果我问你那个杯子里有多少水,你不能给出一个有效的答案。事实是你不知道。现在,如果我拿到杯子,告诉你里面没有水,你会给我的答案是“没有”。NULL是“我不知道答案”,空字符串是“我知道,答案是空字符串”。

已在中回答