首頁 > 軟體

MySQL中空值Null和空字元‘‘的具體使用

2022-05-25 18:00:43

1. 空值 Null 和空字元 ''

日常開發中,一般都會涉及到資料庫增刪改查,那麼不可避免會遇到 MySQL 中的 NULL 和空字元 '',二者表面上看都是空,其實存在一些差異的

  • 空值 NULL 的長度是 NULL,不確定佔用了多少儲存空間,它是佔用儲存空間的
  • 空字串 '' 的長度是 0,是不佔用空間的*

通俗的講:空字串 '' 就像是一個真空狀態的杯子,什麼都沒有;而空值 NULL 就像是一個裝滿空氣的杯子,是有東西的。二者雖然看起來都是空的、透明的,但是有著本質的區別

2. 空值 Null 和空字元 '' 在查詢方式上的對比

2.1. 建立 SQL 指令碼

CREATE TABLE `test_1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

--插入資料
INSERT INTO test_1 VALUES(1,'李斯','111111');
INSERT INTO test_1 VALUES(2,'','');
INSERT INTO test_1 VALUES(3,null,'');
INSERT INTO test_1 VALUES(4,null,1);

表中的資料如下,注意 null 值與 ''

2.2. 查詢 username 列為空字串 '' 的所有資料

2.3. 查詢 username 列為空值 null 的所有資料

2.3.1. 錯誤 SQL

2.3.2. 正確 SQL

2.4. 查詢 username 列不為空值 null 的所有資料

2.4.1. 錯誤 SQL

2.4.2. 正確 SQL

  • 比較字元 =,>,< ,<>!= 都不能用於查詢比較 null 值,如果需要查詢空值 null,必須使用 is nullis not null
  • 空值 '' 可以使用 =, !=, <, > 等算術運運算元來查詢的

3. 空值 Null 和空字元 '' 在 count() 函數查詢的對比

3.1. 查詢 username 列資料總數

使用 count() 的時候,空值 null 並不會被當成有效值去統計的

空字串 '' 是會被 count() 函數所統計的

4. MySQL 中的比較運運算元

運運算元含義
=等於
<=>安全等於,可以比較 null
<> 或 !=不等於
>=大於等於
<=小於等於
>大於
<小於
IS NULL判斷一個值是否為 null
IS NOT NULL判斷一個值是否不為 null

到此這篇關於MySQL中空值Null和空字元‘‘的具體使用的文章就介紹到這了,更多相關MySQL 空值Null和空字元‘‘內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com