亚洲第一狼人天堂网亚洲av_女人扒开屁股爽桶30分钟_亚洲av永久无码精品漫画_丰满岳乱妇一区二区三区_国产无遮挡18禁网站免费

旗下網(wǎng)站

百科知識(shí)庫(kù)

報(bào)道公司事件 · 傳播行業(yè)動(dòng)態(tài)

SQL高級(jí)過(guò)濾查詢用法

發(fā)布日期:2018-01-08    發(fā)布者:金菊

SQL查詢語(yǔ)句在數(shù)據(jù)庫(kù)的操作當(dāng)中經(jīng)常頻繁用到,為了進(jìn)行更強(qiáng)的過(guò)濾控制,有時(shí)簡(jiǎn)單的過(guò)濾根本無(wú)法實(shí)現(xiàn)數(shù)據(jù)的篩選,這時(shí)我們需要用到高級(jí)過(guò)濾AND和OR、IN和NOT操作符。今天做網(wǎng)站小編就和大家討論一下關(guān)于sql高級(jí)過(guò)濾語(yǔ)句的用法...

語(yǔ)句:SELECT * FROM dbo.Products WHERE prod_name='king doll' AND prod_price>8;

--檢索dbo.Products表中所有列,過(guò)濾條件為由供應(yīng)商king doll制造價(jià)格大于8的所有商品;

注意:--后面的字符是這條語(yǔ)句的注釋,這條語(yǔ)句有兩個(gè)條件,分別用AND關(guān)鍵字聯(lián)接在一起,并且過(guò)濾結(jié)果必須滿足這兩個(gè)條件,如果只滿足其中一個(gè)該數(shù)據(jù)不會(huì)被檢索出來(lái);

例如:已知供應(yīng)商king doll制造商品對(duì)應(yīng)的價(jià)格是8元,現(xiàn)在把商品價(jià)格改成小于8或者供應(yīng)商改成king add,結(jié)論是任何數(shù)據(jù)都不會(huì)被檢索出來(lái),因?yàn)槭褂肁ND操作符只滿足一個(gè)條件是不合理的。

OR操作符(或)

語(yǔ)句:SELECT * FROM dbo.Products WHERE prod_name='king doll' OR prod_price>8;

--檢索dbo.Products表中所有列,過(guò)濾條件為由供應(yīng)商king doll制造價(jià)格大于8的所有商品值;

注意:--這里要說(shuō)明的是OR操作符與AND操作符的不同之處是只要滿足其中一個(gè)條件,數(shù)值就會(huì)被檢索出來(lái),例如:由供應(yīng)商king doll制造價(jià)格小于8商品或者由供應(yīng)商king add制造價(jià)格大于8的商品只要其中一個(gè)條件符合,數(shù)據(jù)就被檢索出來(lái);

求值順序(AND和OR混合使用)

先看個(gè)例子:檢索出價(jià)格為8元以上,且由king doll或者Queen dool制造的所有產(chǎn)品,我們輸入語(yǔ)句:

SELECT * FROM dbo.Products WHERE prod_name='king doll' OR prod_name='Queen dool' AND prod_price>8;

得出結(jié)果如下圖:

現(xiàn)在把prod_price大于8的值改成大于10,看看結(jié)果如何:

現(xiàn)在檢索出來(lái)的值是1行,接下來(lái)在prod_name='king doll' OR prod_name='Queen dool'語(yǔ)句加上括號(hào),看看結(jié)果如何:

這回什么都沒(méi)了

現(xiàn)在就解釋為什么:其實(shí)是操作符被錯(cuò)誤組合導(dǎo)致的,因?yàn)樵跀?shù)據(jù)庫(kù)系統(tǒng)中AND求值的順序比OR的求值順序更優(yōu)先。

第一張圖的順序是:先執(zhí)行prod_name='Queen dool' AND prod_price>10的數(shù)據(jù)再執(zhí)行prod_name='king doll' OR prod_name='Queen dool'的數(shù)據(jù),由于第一個(gè)條件和第2條件符合所以出現(xiàn)兩行數(shù)值。

第二張圖的順序也是:先執(zhí)行prod_name='Queen dool' AND prod_price>10的數(shù)據(jù)再執(zhí)行prod_name='king doll' OR prod_name='Queen dool'的數(shù)據(jù),但由于第一條件不符,Queen dool對(duì)應(yīng)的數(shù)值沒(méi)有大于10的值,所以只出現(xiàn)第2個(gè)條件的數(shù)據(jù)。

第三張圖的順序是:先執(zhí)行括號(hào)里面的,然后在執(zhí)行AND prod_price>10,在SQL數(shù)據(jù)庫(kù)中加括號(hào)的內(nèi)容系統(tǒng)會(huì)優(yōu)先執(zhí)行,由于結(jié)果只滿足括號(hào)里的條件,但并不滿足括號(hào)外的條件,因?yàn)閜rod_price的值是9.49小于10,所以什么數(shù)據(jù)都沒(méi)顯示。

IN操作符(指定條件范圍)

語(yǔ)句:SELECT * FROM dbo.Products WHERE prod_name IN ('king doll' ,'Queen dool')

--檢索dbo.Products表中所有列,過(guò)濾條件為由供應(yīng)商king doll和Queen dool制造的商品;

注意:它的功能其實(shí)和OR一樣,但是它的執(zhí)行速度會(huì)更快并且簡(jiǎn)潔,最大的優(yōu)點(diǎn)是可以包含其他SELECT語(yǔ)句,能夠更動(dòng)態(tài)地建立WHERE字句。

NOT操作符(否定其后跟的任何條件)

語(yǔ)句:SELECT * FROM dbo.Products WHERE NOT prod_name='king doll';

--檢索dbo.Products表中所有列,過(guò)濾條件為否定king doll供應(yīng)商包含的所有值;

Copyright 大連網(wǎng)龍科技 版權(quán)所有 遼ICP備14006349號(hào)  html - txt - xml

遼公網(wǎng)安備 21021702000140號(hào)

電話
客服