mysql中NULL和Empty有什么区别

cHe*_*HeE 9 mysql

Mysql中NULL和空字符串有什么区别?

它需要多少存储空间?

例如 .

在用户表中

name:NULL - 占用多少空间

电话: - 占用多少空间

Yad*_*ada 20

考虑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               |
+---------------------------+
Run Code Online (Sandbox Code Playgroud)

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


小智 5

存储空间不应该是您的关注点.相反,你应该关注NULL的语义.假设我家里有一块你生前从未见过的玻璃杯.如果我问你玻璃杯里有多少水,你就无法给出有效答案.事实是你不知道.现在,如果我拿到玻璃杯并告诉你里面没有水,那么你给我的答案就是"没有".NULL是"我不知道答案",空字符串是"我知道,答案是空字符串".


bob*_*nce 4

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

\n