新聞中心
在實(shí)際的數(shù)據(jù)庫(kù)操作中,空值是一個(gè)普遍存在的概念。對(duì)于一個(gè)表或者一個(gè)字段,即便可能存在某些數(shù)據(jù)還沒(méi)有填寫(xiě)或者還沒(méi)被系統(tǒng)分配,我們也要有對(duì)應(yīng)的方案進(jìn)行處理。本文將對(duì)進(jìn)行詳細(xì)介紹。

目前成都創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、隨州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
一、什么是空值
在數(shù)據(jù)庫(kù)中,空值主要指NULL。NULL并不是一個(gè)空字符串,它表示這個(gè)值不存在,或者存在但不確定。但是,在很多情況下,NULL會(huì)引起一些奇怪的結(jié)果,比如,在WHERE子句中使用NULL作為條件時(shí),有時(shí)會(huì)得到不符合預(yù)期的結(jié)果。因此,了解怎樣才能正確地處理NULL是數(shù)據(jù)庫(kù)使用者應(yīng)該掌握的一個(gè)關(guān)鍵知識(shí)點(diǎn)。
二、空值在SELECT語(yǔ)句中的處理方式
當(dāng)使用SELECT語(yǔ)句查詢數(shù)據(jù)庫(kù)時(shí),NULL的處理方式會(huì)根據(jù)使用的表達(dá)式而有所不同。在下面這個(gè)示例中,我們查找了一個(gè)包含NULL和非NULL值的簡(jiǎn)單表:
“`
+—-+——-+
| id | value |
+—-+——-+
| 1 | abc |
| 2 | NULL |
| 3 | def |
| 4 | NULL |
+—-+——-+
“`
如果我們使用一個(gè)簡(jiǎn)單的SELECT語(yǔ)句查詢這個(gè)表:
“`
SELECT * FROM mytable;
“`
會(huì)得到以下結(jié)果:
“`
+—-+——-+
| id | value |
+—-+——-+
| 1 | abc |
| 2 | NULL |
| 3 | def |
| 4 | NULL |
+—-+——-+
“`
但是,如果我們使用ISENULL函數(shù),會(huì)讓結(jié)果有所不同:
“`
SELECT id, ISNULL(value, ’empty’) AS value FROM mytable;
“`
運(yùn)行結(jié)果如下:
“`
+—-+——-+
| id | value |
+—-+——-+
| 1 | abc |
| 2 | empty |
| 3 | def |
| 4 | empty |
+—-+——-+
“`
在這個(gè)例子中,我們將NULL替換為文本“empty”。
三、空值在INSERT語(yǔ)句中的處理方式
在INSERT語(yǔ)句中插入NULL值時(shí),語(yǔ)法會(huì)有所不同。在下面的示例中,我們將插入一個(gè)NULL值作為name字段:
“`
INSERT INTO mytable (name, age) VALUES (NULL, 20);
“`
四、空值在UPDATE語(yǔ)句中的處理方式
UPDATE語(yǔ)句用于修改數(shù)據(jù)庫(kù)中存在的數(shù)據(jù)。如果UPDATE語(yǔ)句中的WHERE子句中使用的是NULL,則可能會(huì)遇到一些問(wèn)題。這是因?yàn)樵赟QL中,NULL不等于任何一個(gè)值(包括NULL本身)。因此,如果條件是NULL,那么該條件將永遠(yuǎn)不會(huì)被滿足。比如,在下面這個(gè)示例中,我們想要將表中value為NULL的行修改為value=‘new value’,但實(shí)際上我們卻什么都沒(méi)有做:
“`
UPDATE mytable SET value=’new value’ WHERE value=NULL;
“`
實(shí)際的應(yīng)該修改方式是使用IS NULL關(guān)鍵字,如下:
“`
UPDATE mytable SET value=’new value’ WHERE value IS NULL;
“`
五、空值在DELETE語(yǔ)句中的處理方式
在DELETE語(yǔ)句中,如果要?jiǎng)h除包含NULL值的行,則需要特殊的處理。如果我們使用以下命令刪除NULL值行,是不會(huì)刪除任何一行的:
“`
DELETE FROM mytable WHERE name=NULL;
“`
正確的方法是使用IS NULL關(guān)鍵字,如下:
“`
DELETE FROM mytable WHERE name IS NULL;
“`
六、空值不同于0或者空串
值NULL表示這個(gè)值不存在,或者存在但不確定。當(dāng)我們定義一個(gè)字段為NOT NULL時(shí),表示這個(gè)字段不能為空。在這種情況下,要小心處理NULL。如果想檢查一個(gè)值是否為NULL或者不為NULL,就要使用IS NULL或者IS NOT NULL,而不是= NULL或者!= NULL。另外,NULL值不等于0或者空串,因?yàn)樗且粋€(gè)不存在的值,而0和空串是存在的。在使用表達(dá)式計(jì)算時(shí),要特別小心處理NULL值,如果不確定某個(gè)值是否為NULL,即便進(jìn)行簡(jiǎn)單的運(yùn)算,結(jié)果都可能會(huì)出現(xiàn)不正常的輸出。
七、小結(jié)
數(shù)據(jù)庫(kù)語(yǔ)句中,空值的處理是一個(gè)非常重要的話題,不同的處理方式對(duì)結(jié)果的影響也大不相同。對(duì)于每個(gè)使用者來(lái)說(shuō),掌握了正確的空值處理方式,才能更好地利用數(shù)據(jù)庫(kù)的優(yōu)勢(shì),并正確地管理數(shù)據(jù)。希望通過(guò)本文的介紹,能夠?qū)τ懈羁痰恼J(rèn)識(shí)。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220怎么直接讀取數(shù)據(jù)庫(kù)的NULL值
1.直接在數(shù)據(jù)庫(kù)中進(jìn)行判斷,在書(shū)寫(xiě)SQL語(yǔ)句的時(shí)候襪困用ISNULL來(lái)對(duì)于是NULL的情況進(jìn)行重新處理。
2.在后臺(tái)進(jìn)行處理。簡(jiǎn)單的IF判斷告豎念就可以纖伍了。
Update語(yǔ)句中如何向SQL數(shù)據(jù)庫(kù)寫(xiě)入NULL
1、在數(shù)據(jù)庫(kù)中建立一張羨仿test表,可以看到test表中有三個(gè)字段巧伏,分別是:id,name,兄寬纖second。
2、輸入下圖中的
sql語(yǔ)句
,點(diǎn)擊運(yùn)行:
3、點(diǎn)擊運(yùn)行后,可以發(fā)現(xiàn)表格發(fā)生了一些變化,在最下行增加了一排空記錄:
4、輸入下圖中的sql語(yǔ)句,也可以插入一條記錄某個(gè)字段為空值:
5、點(diǎn)擊運(yùn)行后,可以發(fā)現(xiàn)表格發(fā)生了一些變化,在最下行增加了一排空記錄:
6、也可以通過(guò)輸入下圖中的sql語(yǔ)句,插入一條記錄,除開(kāi)name字段,其它字段值為空,注意數(shù)據(jù)表table的字段col_name需要支持為NULL才能正常執(zhí)行。如下圖所示:
數(shù)據(jù)庫(kù)語(yǔ)句null值的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫(kù)語(yǔ)句null值,數(shù)據(jù)庫(kù)語(yǔ)句中空值的處理方式,怎么直接讀取數(shù)據(jù)庫(kù)的NULL值,Update語(yǔ)句中如何向SQL數(shù)據(jù)庫(kù)寫(xiě)入NULL的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、SEO優(yōu)化、手機(jī)網(wǎng)站、小程序開(kāi)發(fā)、APP開(kāi)發(fā)公司等,多年經(jīng)驗(yàn)沉淀,立志成為成都網(wǎng)站建設(shè)第一品牌!
文章題目:數(shù)據(jù)庫(kù)語(yǔ)句中空值的處理方式(數(shù)據(jù)庫(kù)語(yǔ)句null值)
鏈接地址:http://m.fisionsoft.com.cn/article/djjiose.html


咨詢
建站咨詢
