W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
使用NULL值時,請記住它們是未知值。 它們不是空字符串或零,它們是有效值。 在表創(chuàng)建中,列規(guī)范允許將它們設(shè)置為接受空值,或拒絕它們。 只需使用NULL或NOT NULL子句。 這在缺少記錄信息(如ID號)的情況下具有應(yīng)用。
用戶定義的變量的值為NULL,直到顯式賦值。 存儲的例程參數(shù)和局部變量允許將值設(shè)置為NULL。 當(dāng)局部變量沒有默認(rèn)值時,它的值為NULL。
NULL不區(qū)分大小寫,并具有以下別名 -
標(biāo)準(zhǔn)比較運(yùn)算符不能與NULL(例如,=,>,> =,<=,<或或!=)一起使用,因?yàn)樗信cNULL值的比較都返回NULL,而不是true或false。 與NULL或可能包含它的比較必須使用“<=>”(NULL-SAFE)運(yùn)算符。
其他可用的運(yùn)營商有 -
IS NULL - 它測試NULL值。
IS NOT NULL - 它確認(rèn)不存在NULL值。
ISNULL - 在發(fā)現(xiàn)NULL值時返回值1,在不存在時返回0。
COALESCE - 返回列表的第一個非NULL值,或者在沒有一個值的情況下返回NULL值。
在排序操作中,NULL值具有最低值,因此DESC次序在底部產(chǎn)生NULL值。 MariaDB允許為NULL值設(shè)置更高的值。
有兩種方法可以做到這一點(diǎn),如下所示 -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
另一種方式 -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
當(dāng)任何參數(shù)為NULL時,函數(shù)通常輸出NULL。 但是,還有專門用于管理NULL值的函數(shù)。 他們是 -
IFNULL() - 如果第一個表達(dá)式不為NULL,它返回它。 當(dāng)它求值為NULL時,它返回第二個表達(dá)式。
NULLIF() - 當(dāng)比較的表達(dá)式相等時,它返回NULL,否則返回第一個表達(dá)式。
像SUM和AVG的函數(shù)忽略NULL值。
在聲明為NOT NULL的列中插入NULL值時,會發(fā)生錯誤。 在默認(rèn)SQL模式下,NOT NULL列將根據(jù)數(shù)據(jù)類型插入一個默認(rèn)值。
當(dāng)字段是TIMESTAMP,AUTO_INCREMENT或虛擬列時,MariaDB會以不同方式管理NULL值。 插入在AUTO_INCREMENT列中會導(dǎo)致序列中的下一個數(shù)字插入到其位置。 在TIMESTAMP字段中,MariaDB分配當(dāng)前時間戳。 在虛擬列中,本教程后面討論的主題將分配默認(rèn)值。
UNIQUE索引可以包含許多NULL值,但是,主鍵不能為NULL。
當(dāng)您使用ALTER命令修改列時,如果沒有NULL規(guī)范,MariaDB會自動分配值。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: