資源描述:
《sql_server_的一些練習(xí)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、一、建立S_T數(shù)據(jù)庫1.使用下面語句:CREATEDATABASES_T2.用菜單建立二、用CREATETABLE語句建立Student、Course和SC三張表(參見教材P82)1.Student(Sno,Sname,Ssex,Sage,Sdept)要求:Sno為主碼,Sname取唯一值USES_TCREATETABLEStudent(SnoVARCHAR(9)PRIMARYKEY,/*列級完整性約束條件*/SnameVARCHAR(20)UNIQUE,/*Sname取唯一值*/SsexVARCHAR(2),SageINT,SdeptVARCHAR(20));2.Cour
2、se(Cno,Cname,Cpno,Ccredit)要求:Cno是主碼;Cname不能為空;Cpno為先修課程編號,參照本表的CnoCREATETABLECourse(CnoVARCHAR(4)PRIMARYKEY,CnameVARCHAR(40)NOTNULL,CpnoVARCHAR(4),CcreditINT,FOREIGNKEY(Cpno)REFERENCESCourse(Cno));3.SC(Sno,Cno,Grade)要求:主碼是Sno和Cno;Sno參照Student表中的Sno;Cno參照Course表中的CnoCREATETABLESC(SnoVARCHAR
3、(9),CnoVARCHAR(4),GradeINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno));一、用DROPTABLE語句將之前建立的三張表刪除SQL?Server?不支持?drop?table?...?cascade?語句,用戶需要自己手動刪除那些引用刪除表的表。所以請注意刪除表的順序DROPTABLESC;DROPTABLEStudent;DROPTABLECourse;一、用菜單建立上面要求的三張表,在關(guān)系圖中建立外碼
4、參照關(guān)系。二、修改這三張表1.在Course表中加入一個屬性列Cdept,記錄開課的系名ALTERTABLECourseADDCdeptVARCHAR(20);2.增加課程名稱必須取唯一值的約束條件ALTERTABLECourseADDUNIQUE(Cname);3.取消Student表中的Sname取唯一值的約束ALTERTABLEStudentDROPCONSTRAINT索引名稱;說明:SQLSERVER不支持DROPUNIQUE,在表的設(shè)計窗口中查詢索引名稱,然后使用上面的語句。4.在表Student的設(shè)計窗口中,將Sage的默認值設(shè)置為0三、按照書上的數(shù)據(jù),填充數(shù)據(jù)
5、表。四、用SQL的查詢語句表達下列查詢:1.檢索李勇同學(xué)所學(xué)課程的課程號和課程名。SELECTCourse.Cno,CnameFROMStudent,Course,SCWHEREStudent.Sno=SC.SnoANDCourse.Cno=SC.CnoANDSname='李勇'1.檢索年齡大于18歲的男學(xué)生的學(xué)號和姓名。SELECTSno,SnameFROMStudentWHERESsex='男'ANDSage>182.檢索選修了'2'號課程的女學(xué)生姓名SELECTSnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDCno='2'AN
6、DSsex='女'3.檢索200215121同學(xué)不學(xué)的課程的課程號。SELECTCnoFROMCourseWHERECnoNOTIN(SELECTCnoFROMSCWHERESno='200215121')或者SELECTCnoFROMCourseWHERENOTEXISTS(SELECT*FROMSCWHERECourse.Cno=SC.CnoANDSno='200215121')1.檢索至少選修兩門課程的學(xué)生學(xué)號。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>=2;或者SELECTSnoFROMStudentWHERE2<=(Selec
7、tcount(*)FROMSCWHERESC.Sno=Student.SnoGROUPBYSno)2.每個學(xué)生選修的課程門數(shù)。SELECTSno,count(*)CcountFROMSCGROUPBYSno3.求選修'3'號課程的學(xué)生的平均分。SELECTAVG(Grade)AvggradeFROMSCWHERECno='3'1.求每個學(xué)生平均成績。SELECTSno,AVG(Grade)AvggradeFROMSCGROUPBYSno2.統(tǒng)計每門課程的學(xué)生選修人數(shù)(超過1人的課程才統(tǒng)計)。查詢結(jié)果按人數(shù)降序排列,