中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

MySQL處理空值時(shí)需要注意的兩個(gè)問(wèn)題-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“MySQL處理空值時(shí)需要注意的兩個(gè)問(wèn)題”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),呼中企業(yè)網(wǎng)站建設(shè),呼中品牌網(wǎng)站建設(shè),網(wǎng)站定制,呼中網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,呼中網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

MySQL是一個(gè)基于結(jié)構(gòu)化數(shù)據(jù)的開(kāi)源數(shù)據(jù)庫(kù)。SQL語(yǔ)句是MySQL數(shù)據(jù)庫(kù)中核心語(yǔ)言。不過(guò)在MySQL數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句,需要小心兩個(gè)陷阱。


陷阱一:空值不一定為空

空值是一個(gè)比較特殊的字段。在MySQL數(shù)據(jù)庫(kù)中,在不同的情形下,空值往往代表不同的含義。這是MySQL數(shù)據(jù)庫(kù)的一種特性。如在普通的字段中(字符型的數(shù)據(jù)),空值就是表示空值。但是如果將一個(gè)空值的數(shù)據(jù)插入到TimesTamp類(lèi)型的字段中,空值就不一定為空。此時(shí)為出現(xiàn)什么情況呢(如下圖)?

我先創(chuàng)建了一個(gè)表。在這個(gè)表中有兩個(gè)字段:User_id(其數(shù)據(jù)類(lèi)型是int)、Date(其數(shù)據(jù)類(lèi)型是TimesTamp)。現(xiàn)在往這個(gè)表中插入一條記錄,其中往Date字段中插入的是一個(gè)NULL空值??墒钱?dāng)我們查詢(xún)時(shí),其結(jié)果顯示的卻是插入記錄的當(dāng)前時(shí)間。這是怎么一回事呢?其實(shí)這就是在MySQL數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句時(shí)經(jīng)常會(huì)遇到的一個(gè)陷阱:空值不一定為空。在操作時(shí),明明插入的是一個(gè)空值的數(shù)據(jù),但是最后查詢(xún)得到的卻不是一個(gè)空值。

在MySQL數(shù)據(jù)庫(kù)中,NULL對(duì)于一些特殊類(lèi)型的列來(lái)說(shuō),其代表了一種特殊的含義,而不僅僅是一個(gè)空值。對(duì)于這些特殊類(lèi)型的列,各位讀者主要是要記住兩個(gè)。一個(gè)就是筆者上面舉的TimesTamp數(shù)據(jù)類(lèi)型。如果往這個(gè)數(shù)據(jù)類(lèi)型的列中插入Null值,則其代表的就是系統(tǒng)的當(dāng)前時(shí)間。另外一個(gè)是具有auto_increment屬性的列。如果往這屬性的列中插入Null值的話(huà),則系統(tǒng)會(huì)插入一個(gè)正整數(shù)序列。而如果在其他數(shù)據(jù)類(lèi)型中,如字符型數(shù)據(jù)的列中插入Null的數(shù)據(jù),則其插入的就是一個(gè)空值。

陷阱二:空值不一定等于空字符

在MySQL中,空值(Null)與空字符(’’)相同嗎?答案是否定的。請(qǐng)大家先來(lái)看下圖的演示。

在同一個(gè)數(shù)據(jù)庫(kù)表中,同時(shí)插入一個(gè)Null值的數(shù)據(jù)和一個(gè)’’空字符的數(shù)據(jù),然后利用Select語(yǔ)句進(jìn)行查詢(xún)。最后顯示的結(jié)果如上圖所示。顯然其顯示的結(jié)果是不相同的。從這個(gè)結(jié)果中就可以看出,空值不等于空字符。這就是在MySQL中執(zhí)行SQL語(yǔ)句遇到的第二個(gè)陷阱。在實(shí)際工作中,空值數(shù)據(jù)與空字符往往表示不同的含義。數(shù)據(jù)庫(kù)管理員可以根據(jù)實(shí)際的需要來(lái)進(jìn)行選擇。如對(duì)于電話(huà)號(hào)碼等字段,可以默認(rèn)設(shè)置為空值(表示根本不知道對(duì)方的電話(huà)號(hào)碼)或者設(shè)置為空字符(表示后來(lái)取消了這個(gè)號(hào)碼)等等。由于他們?cè)跀?shù)據(jù)庫(kù)中會(huì)有不同的表現(xiàn)形式,所以數(shù)據(jù)庫(kù)管理員需要區(qū)別對(duì)待。筆者更加喜歡使用空值,而不是空字符。這主要是因?yàn)獒槍?duì)空值這個(gè)數(shù)據(jù)類(lèi)型有幾個(gè)比較特殊的運(yùn)算字符。如果某個(gè)字段是空字符,數(shù)據(jù)庫(kù)中是利用字段名稱(chēng)來(lái)代替。相反,如果插入的是空值,則直接顯示的是NULL。這跟其他數(shù)據(jù)庫(kù)的顯示方式也是不同的。

一是IS NULL 和IS NOT NULL關(guān)鍵字。如果要判斷某個(gè)字段是否含用空值的數(shù)據(jù),需要使用特殊的關(guān)鍵字。其中前者表示這個(gè)字段為空,后者表示這個(gè)字段為非空。在Select語(yǔ)句的查詢(xún)條件中這兩個(gè)關(guān)鍵字非常的有用。如需要查詢(xún)所有電話(huà)號(hào)碼為空的用戶(hù)(需要他們補(bǔ)充電話(huà)號(hào)碼信息),就可以在查詢(xún)條件中加入is not null關(guān)鍵字。

二是Count等統(tǒng)計(jì)函數(shù),在空值上也有特殊的應(yīng)用。如現(xiàn)在需要統(tǒng)計(jì)用戶(hù)信息表中有電話(huà)號(hào)碼的用戶(hù)數(shù)量,此時(shí)就可以使用count函數(shù)、同時(shí)將電話(huà)號(hào)碼作為參數(shù)來(lái)使用。因?yàn)樵诮y(tǒng)計(jì)過(guò)程中,這個(gè)函數(shù)會(huì)自動(dòng)忽略空值的數(shù)據(jù)。此時(shí)統(tǒng)計(jì)出來(lái)的就是有電話(huà)號(hào)碼的用戶(hù)信息。如果采用的是空字符的數(shù)據(jù),則這個(gè)函數(shù)會(huì)將其統(tǒng)計(jì)進(jìn)去。如下圖所示,統(tǒng)計(jì)剛才建立的兩條記錄時(shí),系統(tǒng)統(tǒng)計(jì)的結(jié)果是1,而不是2。可見(jiàn)系統(tǒng)自動(dòng)將Null值的數(shù)據(jù)忽略掉了

“MySQL處理空值時(shí)需要注意的兩個(gè)問(wèn)題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文標(biāo)題:MySQL處理空值時(shí)需要注意的兩個(gè)問(wèn)題-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.rwnh.cn/article0/cepdio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、外貿(mào)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化建站公司、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
昌乐县| 寻甸| 天气| 松潘县| 中牟县| 尼玛县| 抚顺市| 兰州市| 金门县| 安吉县| 监利县| 黔东| 茌平县| 友谊县| 屯门区| 四平市| 徐汇区| 若尔盖县| 广丰县| 寻乌县| 射阳县| 黑龙江省| 鄂伦春自治旗| 潍坊市| 红原县| 绥中县| 尉氏县| 时尚| 凌海市| 松江区| 扶风县| 黑河市| 乌拉特前旗| 基隆市| 灯塔市| 文水县| 临潭县| 武功县| 彭山县| 西安市| 澄城县|