mysql中null與 的區別

2021-08-21 21:27:01 字數 1912 閱讀 4680

mysql中空字元和空值的區別,一直都知道mysql

中空字串(」)和空值(null)之間有區別,但是沒好好研究過。直到專案上,這兩個概念被我搞混了之後才想起來研究一下。

根據網上的說法,空字串(」)是不占用空間,而空值(null)是占用空間。(這裡我不太明白,因為我的理解是,字串都會有乙個結束符,這個結束符不會占用空間嗎??)。

雖然有不明白的地方,但是不影響這篇文章對這兩個值的分析。

為了分析區別,這裡新建一張表 test_null,並插入4行資料。?

這裡需要說一下,將字段設定為 not null之後是可以插入空字元(」)的。影響的只是不能插入空值(null)。

首先比較一下,空字元(」)和空值(null)查詢方式的不同。

由此可見,null 和 」的查詢方式不同。而且比較字元 『=』』>』 『』是不能用於查詢null。如果需要查詢空值(null),需使用is null 和is not null。

第二種比較,參與運算。

由此可見,空值(null)是不能參與任何計算,因為空值參與任何計算都為空。所以,當程式業務中存在計算的時候,需要特別注意。如果非要參與計算,需使用ifnull函式,將null轉換為」才能正常計算。

第三種比較,統計數量

由此可見,當統計數量的時候。空值(null)並不會被當成有效值去統計。同理,sum()求和的時候,null也不會被統計進來,這樣就能理解,為什麼null計算的時候結果為空,而sum()求和的時候結果正常了。

以上對比,算得上是程式中經常會遇到但又不容易注意的問題。

網路上,針對這兩個值。有一種說法會比較好理解。在存**號碼欄位中,空值(null)代表你沒有**,而空字串(」)則代表,你有**但是沒有填寫。或者理解,填寫了又刪除掉。

還有一種理解方式。null是尚未定義的值,表示未知。而」,確定為乙個空字串。所以未知的值,無法進行各種比較(大於,小於,等於),也不能用於計算(加減乘除)。

我的理解是,不考慮是否占用記憶體。null代表什麼都沒有,」代表的就是乙個空白的字串。所以,null什麼都沒有就不能用於比較。

無論怎麼理解,都需要記住這兩個值的區別。避免在專案中碰到錯誤。

mysql中NULL與 區別

在mysql中 空值 和 null 的概念 首先,我們要搞清楚 空值 和 null 的概念 1 空值是不占用空間的 2 mysql中的null其實是占用空間的 下面來分析下建立的語句 建立test表 create table test id int 10 unsigned not null auto...

Java中 與 null 的區別

string name string nickname 區別一 null 代表的是空物件。解釋 它還沒有目標,不知道要指向誰?等同於 string name null。除了可以操作判斷或賦值語句 外,不可以對其進行其他任何操作。例如 name.trim 會丟擲空指標異常。代表已經宣告了乙個物件的例項...

java中 與null的區別

在專案中我們會經常遇到 與null的問題,那麼這兩者之間有什麼區別呢?1.從型別上分析 string s 這個代表的是空的字串,長度為0。string s null 這個null代表的是乙個物件,而這裡的s就相當於是對null這個物件的引用。2.從記憶體分配上看 string s 表示宣告乙個字串型...