在做數(shù)據(jù)查詢過(guò)程中,我們經(jīng)常要對(duì)數(shù)據(jù)集合進(jìn)行一些包含或排除的條件查詢,例如:要查詢求算機(jī)系學(xué)生的學(xué)號(hào)和選了c03課程且成績(jī)?cè)?0分以上的學(xué)生學(xué)號(hào),若是用用條件查詢就要許多的and或or,我們用運(yùn)算集查詢就方便許多,接下來(lái)由南昌網(wǎng)站設(shè)計(jì)公司百恒網(wǎng)絡(luò)數(shù)據(jù)工程師結(jié)合實(shí)例向大家介紹并集UNION、交集INTERSECT、差集EXCEPT的使用方法:
1.SQL集合的并集運(yùn)算
求計(jì)算機(jī)系學(xué)生的學(xué)號(hào)和選了“c03”課程且成績(jī)?cè)?0分以上的學(xué)生學(xué)號(hào)。
SELECT sid FROM student WHERE department='計(jì)算機(jī)系' UNION (SELECT sid FROM learning WHERE cid='c03' AND score>80)
2.SQL集合的差集運(yùn)算
求沒(méi)有選擇課號(hào)為“c01”的學(xué)生的學(xué)號(hào)和課號(hào)。
SELECT sid,cid FROM learning WHERE sid IN ( SELECT sid FROM learning EXCEPT ( SELECT sid FROM learning WHERE cid='c01') )
3.SQL集合的交集運(yùn)算
求同時(shí)選了課號(hào)為“c01”和“c02”的學(xué)生學(xué)號(hào)。
SELECT sid FROM learning WHERE cid='c01' INTERSECT (SELECT sid FROM learning WHERE cid='c02')
也可以采用自連接的方式求解,即通過(guò)自連接將cid的一個(gè)屬性變成兩個(gè)名義屬性,再逐行進(jìn)行比較:
SELECT l1.sid FROM learning l1,learning l2 WHERE l1.sid=l2.sid AND l1.cid='c01' AND l2.cid='c02'
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò) http://www.gimmickmag.com/article/1793.html 如轉(zhuǎn)載請(qǐng)注明出處!