資源描述:
《關(guān)系代數(shù)和sql練習(xí)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、對下列關(guān)系模式分別用關(guān)系代數(shù)、和SQL實現(xiàn)下列查詢理解下面幾句話:1.SQL語言是具有很堅實數(shù)學(xué)基礎(chǔ)的語言2.SQL語言是介于關(guān)系代數(shù)和關(guān)系演算之間的結(jié)構(gòu)化查詢語言3.一個查詢只要能用關(guān)系代數(shù)或關(guān)系演算實現(xiàn),必能用SQL實現(xiàn)4.一個查詢即能用關(guān)系代數(shù)、關(guān)系演算、SQL實現(xiàn)5.在SQL語言中,能用非EXISTS謂詞實現(xiàn)的查詢,均能用EXISTS謂詞實現(xiàn),反之不一定。?1.查詢學(xué)生95001的所有信息。①關(guān)系代數(shù):②SQL語言:SELECT*FROMStudentWHERESno='95001'?2.查詢學(xué)生95001的姓名
2、和所在系。①關(guān)系代數(shù):②SQL語言:方法一:SELECTSname,SdeptFROMStudentWHERESno='95001'方法二:SELECTSname,SdeptFROMStudentWHEREEXISTS(SELECT*FROMStudentSXWHEREStudent.Sno=SX.SnoANDSX.Sno='95001')方法三:SELECTSname,SdeptFROMStudentWHERESnoIN(SELECTSnoFROMStudentWHERESno='95001')?3.查詢選修了1號課的
3、學(xué)生的學(xué)號。①關(guān)系代數(shù):②SQL語言:方法一:SELECTSnoFROMSCWHERECno='1'方法二:SELECTSnoFROMSCWHEREEXISTS(SELECT*FROMSCSCXWHERESC.Sno=SCX.SnoANDSCX.Cno='1')方法三:SELECTSnoFROMSCWHERESnoIN(SELECTSnoFROMSCWHERECno='1')?4.查詢選修了1號課的學(xué)生的姓名。①關(guān)系代數(shù):②SQL語言:方法一:SELECTSnameFROMStudent,SCWHERESC.Sno=St
4、udent.SnoANDCno='1'方法二:SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSCWHERESC.Sno=Student.SnoANDCno='1')方法三:SELECTSnameFROMStudentWHERESnoIN(SELECTSnoFROMSCWHERECno='1')?5.查詢至少選修了1號課和3號課的學(xué)生的學(xué)號。①關(guān)系代數(shù):或或:首先建立一個臨時關(guān)系K:cno13然后求:πSno.Cno(SC)÷K②SQL語言:方法一:SELECTSCX.SnoFR
5、OMSC,SCSCXWHERESC.Cno='1'ANDSCX.Sno=SC.SnoANDSCX.Cno='3'方法:SELECTSnoFROMSCWHEREEXISTS(SELECT*FROMSCSCXWHERESC.Cno='1'ANDSCX.Sno=SC.SnoANDSCX.Cno='3')方法二:SELECTSnoFROMSCWHERECno='1'ANDSnoIN(SELECTSnoFROMSCWHERECno='3')?6.查詢至少選修了一門其直接先行課為5號課的學(xué)生學(xué)號。①關(guān)系代數(shù):②SQL語言:方法一:S
6、ELECTSnoFROMSC,CourseWHERESC.Cno=Course.CnoANDCourse.Cpno='5'方法二:SELECTSnoFROMSCWHEREEXISTS(SELECT*FROMCourseWHERESC.Cno=Course.CnoANDCourse.Cpno='5')方法三:SELECTSnoFROMSCWHERECnoIN(SELECTCnoFROMCourseWHERECpno='5')?7.查詢至少選修了一門其直接先行課為5號課的學(xué)生姓名。①關(guān)系代數(shù):②SQL語言:方法一:SELEC
7、TSnameFROMStudent,SC,CourseWHEREStudent.Sno=SC.SnoANDSC.Cno=Course.CnoANDCourse.Cpno='5'方法二:SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSCWHEREStudent.Sno=SC.SnoANDEXISTS(SELECT*FROMCourseWHERESC.Cno=Course.CnoANDCourse.Cpno='5'))方法三:SELECTSnameFROMStudentWHERES
8、noIN(SELECTSnoFROMSCWHERECnoIN(SELECTCnoFROMCourseWHERECpno='5'))?8.查詢沒有選修1號課程的學(xué)生姓名。①關(guān)系代數(shù):②SQL語言:SELECTSnameFROMStudentWHERENOTEXISTS(SELECT*FROMSCWHEREStudent