MySQL中空值Null和空字符‘‘的具體使用
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 null
或is 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和空字符‘‘內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JavaWeb倉庫管理系統詳解
- MySQL 8.0 之不可見列的基本操作
- MySQL中你可能忽略的COLLATION實例詳解
- mysql千萬級數據量根據索引優化查詢速度的實現
- 一文帶你瞭解MySQL中的鎖機制