關於資料庫中null,空值, 的一些思考

2021-09-26 10:50:29 字數 808 閱讀 4062

一直對空值和null值的概念理解不清晰,所以結合資料以及自己的理解對他們的區別和處理方式進行總結。

首先就是在概念上的不同:

1、空值不佔空間

2、null值佔空間。

打個比喻就是空值表示乙個杯子是真空狀態,什麼都沒有,而null值是杯子中有空氣。

發現向cola一列插入空值成功,而colb列既可以插入空值,也可以插入null值。總結一下 ,定義為not null的字段只能插入空值,不能插入null值,而null欄位可以插入空值,也可以插入null值。

現發現 is not null 只會過濾為null值的列,而<>會同時過濾空值和null值,所以要根據實際情況選擇過濾方式。另外,判斷null值只能用 is null 或 is not null ,不能用 = 或 <>。

注意事項:

1:在進行count()統計某列的記錄數的時候,如果採用的null值,會別系統自動忽略掉,但是空值是會進行統計到其中的。

2: 判斷null 用is null 或者 is not null,sql 語句函式中可以使用ifnull()函式來進行處理,判斷空字元用 =」或者 <>」來進行處理

3: 對於mysql特殊的注意事項,對於timestamp資料型別,如果往這個資料型別插入的列插入null值,則出現的值是當前系統時間。插入空值,則會出現 『0000-00-00 00:00:00』

4:對於空值的判斷到底是使用is null 還是 =」要根據實際業務來進行區分。

5、當使用order by時,首先呈現null值。如果你用desc以降序排序,null值最後顯示。當使用group by時,所有的null值被認為是相等的,故只顯示一行。

資料庫中的NULL(空值)

往往很多人都認為空值與空白或0值是一樣的,至少我在今天以前是這麼認為的,其實空值並不與空白和0值是一回事。null值表示數值未知。沒有兩個相等的空值,比較兩個空值或空值和任意乙個數比較返回的均是未知 下面有以下從sql 聯機叢書中的關於空值的資訊 1 若要測試查詢中的空值,在where 子句中使用i...

如何檢索資料庫中的空值和null

資料庫中沒有的值分為這麼幾種 1.null 如果看上去單元格是空白的,那就是null值.2.0 偶爾一些單元格會預設為 0 這個0可能是char也可能是int,所以分0,0 即單引號 0 3.null 此null非彼null,這個null是 null 即單引號 null 本人就遇到過一次,在 中,所...

C 中往資料庫插入 更新時候關於NUll空值的處理

本文 今天碰到個問題。sqlcommand對傳送的引數中如果欄位的值是null具然不進行更新操作,也不提示任何錯誤。百思不得其解。先作個記錄,再查資料看看什麼原因。暫時的解決方法 1 update不支援更新null,先delete後insert來替換.2 替代null的方法,對於字元型,只要是nul...