1. 程式人生 > >mysql中空值和null值的區別及處理方法總結

mysql中空值和null值的區別及處理方法總結

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

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

1、空值不佔空間

2、null值佔空間。

打個比喻就是空值表示一個杯子是真空狀態,什麼都沒有,而null值是杯子中有空氣。接下就建立一個測試表比較它們之間的區別:



向test表中插入一行資料如下


發現報錯,colA的值不能是null值。

再插入一條資料,


這個時候發現向colB一列插入null成功。

再插入二列資料


發現向colA一列插入空值成功,而colB列既可以插入空值,也可以插入NULL值。總結一下 ,定義為NOT NULL的欄位只能插入空值,不能插入null值,而NULL欄位可以插入空值,也可以插入null值。

接下來再插入一組不含空值和null的資料,


現在表一共有三列,現在我分別用 is not 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值被認為是相等的,故只顯示一行。



相關推薦

mysql中空null區別處理方法總結

一直對空值和null值的概念理解不清晰,所以結合資料以及自己的理解對他們的區別和處理方式進行總結。首先就是在概念上的不同:1、空值不佔空間2、null值佔空間。打個比喻就是空值表示一個杯子是真空狀態,什麼都沒有,而null值是杯子中有空氣。接下就建立一個測試表比較它們之間的區

資料庫中空字串NULL兩個概念的區別

       資料庫中的NULL表示“沒有對(列)變數輸入資料”,即在資料庫中的NULL可以區分“沒有對(列)變數輸入資料”和“有對(列)變數輸入資料”這兩類情況。而輸入空字串,則是這裡的“有對(列)變數輸入資料”這一類情況,即有輸入資料,只是輸入的資料為空字串(含有終止符

不再迷惑,無NULL

空值 int 進行 命令 into 如果 returns 1-1 query 在關系型數據庫的世界中,無值和NULL值的區別是什麽?一直被這個問題困擾著,甚至在寫TSQL腳本時,戰戰兢兢,如履薄冰,害怕因為自己的一知半解,挖了坑,貽害後來人,於是,本著上下求索,不達通幽不罷

jaraar的區別使用方法

使用Android Studio對工程進行編譯後,會同時生成jar與aar檔案 其位置分別位於: jar:/build/intermediates/bundles/debug(release)/classes.jar arr:/build/outputs/

C++錯誤異常的區別處理-1

本文轉自http://www.cnblogs.com/nzbbody/p/3418989.html 一、什麼是異常處理 一句話:異常處理就是處理程式中的錯誤。 二、為什麼需要異常處理,以及異常處理的基本思想 C++之父Bj

Intellij Idea使用入門(一)——Idea常用設定,ProjectModule的區別快捷鍵總結

*本篇主要是對Idea的常用設定(主題、字型、自動編譯、編譯器選擇等)、Project和Module、快捷鍵等做個介紹!*    Intellij Idea是JetBrains公司的產品,社群版可以免費使用,旗艦版是按年收費的,學生憑學生證或者創業公司可免費使用一年,當然也可

StringRedisTemplateRedisTemplate的區別使用方法

auth temp 獲取 ati ota 一個 @class col () 在學習SpringCloud的過程中,總需要記錄一下學習的過程,今天記錄一下StringRedisTemplate和RedisTemplate的區別及使用方法,使用時只需使用maven依賴包spri

mysql刪除欄位為空的資料 mysql中空NULL區別

空值與NULL的區別   我們先來理解mysql中空值與NULL的區別是什麼吧   一些剛剛接觸MySQL的孩子,經常會錯誤的認為NULL與空字串’ ’是相同的。這看似是一件不重要的事情,但是在MySQL中,這兩者是完全不同的。NULL是指沒有值,而”則表示值是存在的,

python編程之賦拷貝的區別概述操作excel數據庫(圖)

may 格式 work val 原子 註意 更遠 當我 就是 python編程之賦值和拷貝的區別概述及操作excel數據庫(圖)一、賦值在Python中,對象的賦值就是簡單的對象引用,這點和C++不同,如下所示:a = [1,2,”hello”,[‘python’, ‘C+

mysqlnull的判斷

一:判斷空值 SELECT * FROM `users` where pwd='';結果: SELECT * FROM `users` where pwd !='';結果: 二:判斷null值 SELECT * FROM `users` where pwd

資料庫中的空NULL區別以及python中的NaNNone

資料庫裡面的”空值”有兩種:空字元(“”)、空值(NULL)。 兩種儲存方式在資料庫中都很常見,實際中根據業務或者個人習慣可以用這兩種方式來儲存“空值”。那這兩種到底有什麼區別,下面通過例子直接來展示: -- 建立表test create table `

mysql的空NULL區別

Mysql資料庫是一個基於結構化資料的開源資料庫。SQL語句是MySQL資料庫中核心語言。不過在MySQL資料庫中執行SQL語句,需要小心兩個陷阱。   陷阱一:空值不一定為空   空值是一個比較特殊的欄位。在MySQL資料庫中,在不同的情形下,空值往往代表不同的含義

Mysql查詢不為null欄位為null 阿星小棧

在mysql中,查詢某欄位為null空時,切記不可用 = null,而是 is null,不為空則是 is not null 而不是 != null   select * from table where column is null; select * from ta

mysql小技巧之null對映(IFIFNULL)到其他有意義的

資料庫關係模型建立者 - E.F.Codd博士在關係資料庫理論中引入了NULL概念。 根據Dr.E.C.F.Codd的表述,NULL表示未知值或缺少資訊。其中mysql還支援NULL表示缺少或不適用資訊的概念。所以在資料庫表中,我們可能會儲存包含NULL值的資料。但是如果以報

[學習筆記]多項式的整除、取模、多點求常係數線性遞推

一、開頭 ( WC2019 神犇協會) undefeatedKO : NOI2017 的題大家都 AK 了嗎? All : AK 了! ION :我們穿越到 2019 年的 WC 怎麼樣? olis :好啊!聽說一個弱雞 xyz32768 要來 WC ,我們一到就把他 D 一遍,這樣他

PHP的類物件的賦clone的區別

1. 類物件的賦值方式 PHP的類的賦值方式,有3種情況,一種是$a = new class()操作,建立類;一種是普通的物件賦值$a = $b; 一種取地址的賦值方式$a = &$b。那麼,這三種賦值,指向的記憶體是否是同一塊呢?好吧,我們一起來做一個實驗。 程式碼如下: &l

濾波演算法、中均值濾波區別

濾波演算法:  這裡所講的演算法都是針對影象空間的濾波演算法,其中模板,可以理解為影象形態學中的結構元素,是用來選取影象中的那些畫素點被用來操作的。空間濾波根據其功能劃分為平滑濾波和銳化濾波。平滑濾波:能減弱或者消除影象中高頻率分量,但不影響低頻率分量,在實際應用中可用來消除噪聲。銳化濾波

Python函式中多型別傳冗餘引數函式的遞迴呼叫

1.多型別傳值和冗餘引數 多型別傳值: def fun(x,y): return x +y print fun(3,5) 8 print fun(*t) 3 def fun(x,y,z): return x + y + z t1 = (1,2,3)

mysqlnull與not null區別效率

<span style="font-family: 宋體; background-color: rgb(255, 255, 255);">經常用mysql的人可能會遇到下面幾種情況:</span> 1、我欄位型別是not null,為什麼我可以插入空值 2、為什麼not

面試被問之-----sql優化中in與exists的區別 Mysql中 in or exists not exists not in區別 (網路整理) Sql語句中INexists的區別應用 [筆記] SQL效能優化 - 避免使用 IN NOT IN

曾經一次去面試,被問及in與exists的區別,記得當時是這麼回答的:''in後面接子查詢或者(xx,xx,xx,,,),exists後面需要一個true或者false的結果",當然這麼說也不算錯,但別人想聽的是sql優化相關,肯定是效率的問題,只是那個時候確實不知道它們在sql優化上的區別,只知道用in會進