簡體   English   中英

mysql中NULL和Empty有什么區別

[英]what is difference between NULL and Empty in mysql

Mysql中NULL和空字符串有什么區別?

它需要多少存儲空間?

例如 。

在用戶表中

name:NULL - 占用多少空間

電話: - 占用多少空間

考慮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的語義。 假設我家里有一塊你生前從未見過的玻璃杯。 如果我問你玻璃杯里有多少水,你就無法給出有效答案。 事實是你不知道。 現在,如果我拿到玻璃杯並告訴你里面沒有水,那么你給我的答案就是“沒有”。 NULL是“我不知道答案”,空字符串是“我知道,答案是空字符串”。

有正當理由使用NULL,但在行存儲中節省空間不是一個。 如果你想要'不知道'占位符使用NULL; 如果您只想存儲一個行為空字符串的空字符串,請繼續並存儲空字符串。 如果它是一個VARCHAR列(它可能會是它),那么它幾乎沒有占用太多空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM