【正文】
比較運(yùn)算符的子查詢(xún)例30:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別。 SELECT Sno,Sname,Sdept FROM S WHERE Sdept = (SELECT Sdept FROM S WHERE Sname=‘張三’);例31:查詢(xún)選修課程名為“數(shù)據(jù)庫(kù)”的學(xué)生學(xué)號(hào)和姓名。 SELECT Sno,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno = (SELECT Cno FROM C WHERE Cname=‘DB’));(3)帶有EXISTS謂詞的子查詢(xún)(1)帶有EXISTS謂詞的子查詢(xún)不返回任何實(shí)際數(shù)據(jù),它只產(chǎn)生邏輯值。例32:查詢(xún)選修了C2課程的學(xué)生姓名。 Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’)。 Sname FROM S WHERE EXISTS ( SELECT * FROM SC WHERE = AND Cno=‘C2’)。 例33:查詢(xún)所有未選修C2課程的學(xué)生姓名。 SELECT Sname FROM S WHERE NOT EXISTS ( SELECT * FROM SC WHERE = AND Cno=‘C2’)。 [NOT]EXISTS 實(shí)際上是一種內(nèi)、外層互相關(guān)的嵌套查詢(xún),只有當(dāng)內(nèi)層引用了外層的值,這種查詢(xún)才有意義。例34:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別。 SELECT Sno,Sname,Sdept FROM S AS S1 WHERE EXISTS (SELECT * FROM S AS S2WHERE =S1. Sdept AND =‘張三’);相關(guān)子查詢(xún)例35:查詢(xún)選修了全部課程的學(xué)生姓名。在表S中找學(xué)生,要求這個(gè)學(xué)生學(xué)了全部課程。換言之,在S表中找學(xué)生,在C中不存在一門(mén)課程,這個(gè)學(xué)生沒(méi)有學(xué)。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE = AND =));例36:查詢(xún)所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)分析:不存在這樣的課程Y,學(xué)生S3選了Y,而其他學(xué)生沒(méi)有選。SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE =‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE = AND =)); 專(zhuān)業(yè)整理分享