MySQL中空值Null和空字符‘‘的具體使用
1. 空值 Null 和空字符 ''
日常開發(fā)中,一般都會(huì)涉及到數(shù)據(jù)庫增刪改查,那么不可避免會(huì)遇到 MySQL 中的 NULL 和空字符 '',二者表面上看都是空,其實(shí)存在一些差異的
- 空值
NULL的長(zhǎng)度是NULL,不確定占用了多少存儲(chǔ)空間,它是占用存儲(chǔ)空間的 - 空字符串
''的長(zhǎng)度是0,是不占用空間的*
通俗的講:空字符串 '' 就像是一個(gè)真空狀態(tài)的杯子,什么都沒有;而空值 NULL 就像是一個(gè)裝滿空氣的杯子,是有東西的。二者雖然看起來都是空的、透明的,但是有著本質(zhì)的區(qū)別
2. 空值 Null 和空字符 '' 在查詢方式上的對(duì)比
2.1. 創(chuàng)建 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; --插入數(shù)據(jù) 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);
表中的數(shù)據(jù)如下,注意 null 值與 '' 值

2.2. 查詢 username 列為空字符串 '' 的所有數(shù)據(jù)

2.3. 查詢 username 列為空值 null 的所有數(shù)據(jù)
2.3.1. 錯(cuò)誤 SQL

2.3.2. 正確 SQL

2.4. 查詢 username 列不為空值 null 的所有數(shù)據(jù)
2.4.1. 錯(cuò)誤 SQL

2.4.2. 正確 SQL

- 比較字符
=,>,< ,<>,!=都不能用于查詢比較null值,如果需要查詢空值null,必須使用is null或is not null - 空值
''可以使用=, !=, <, >等算術(shù)運(yùn)算符來查詢的
3. 空值 Null 和空字符 '' 在 count() 函數(shù)查詢的對(duì)比
3.1. 查詢 username 列數(shù)據(jù)總數(shù)

使用 count() 的時(shí)候,空值 null 并不會(huì)被當(dāng)成有效值去統(tǒng)計(jì)的
空字符串 '' 是會(huì)被 count() 函數(shù)所統(tǒng)計(jì)的
4. MySQL 中的比較運(yùn)算符
| 運(yùn)算符 | 含義 |
|---|---|
= | 等于 |
<=> | 安全等于,可以比較 null |
<> 或 != | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
> | 大于 |
< | 小于 |
IS NULL | 判斷一個(gè)值是否為 null |
IS NOT NULL | 判斷一個(gè)值是否不為 null |
到此這篇關(guān)于MySQL中空值Null和空字符‘‘的具體使用的文章就介紹到這了,更多相關(guān)MySQL 空值Null和空字符‘‘內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
不使用MySQL數(shù)據(jù)庫的五個(gè)給力理由解析
眾所周知,MySQL數(shù)據(jù)庫雖然功能未必很強(qiáng)大,但因?yàn)樗拈_源、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫。2011-03-03
CentOS下php使用127.0.0.1不能連接mysql的解決方法
這篇文章主要介紹了CentOS下php使用127.0.0.1不能連接mysql的解決方法,本文原因是SELINUX導(dǎo)致的連接失敗,需要的朋友可以參考下2015-01-01
根據(jù)mysql慢日志監(jiān)控SQL語句執(zhí)行效率
根據(jù)mysql慢日志監(jiān)控SQL語句執(zhí)行效率 啟用MySQL的log-slow-queries(慢查詢記錄)。2012-11-11
MySQL示例講解數(shù)據(jù)庫約束以及表的設(shè)計(jì)
約束主要完成對(duì)數(shù)據(jù)的檢驗(yàn),保證數(shù)據(jù)庫數(shù)據(jù)的完整性;如果有相互依賴數(shù)據(jù),保證該數(shù)據(jù)不被刪除,本篇文章教你如何給表設(shè)置約束及設(shè)計(jì)2022-06-06
Mysql常用函數(shù)之Rank排名函數(shù)詳解
這篇文章主要介紹了Mysql常用函數(shù)之Rank排名函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

