文档介绍:该【数据库原理及其应用实验代码 】是由【小屁孩】上传分享,文档一共【25】页,该文档可以免费在线阅读,需要了解更多关于【数据库原理及其应用实验代码 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..实验2数据查询(1)查询性别为“男”的所有学生的名称并按学号升序排列。SELECTSnameFROMStudentsWHERESsex='男'ORDERBYSno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。考试成绩>=60否则=0SELECTSno,Tno,o,Score,'PointofScore',CONVERT(FLOAT(1),(Score-60)*)FROMCourses,ReportsWHEREScore>=o=oUNIONSELECTSno,Tno,o,Score,'PointofScore',0FROMCourses,Reports:..o=oAND(Score<60ORScoreISNULL)(3)查询学分是3或4的课程的名称。ameFROMCoursesreditIN('3','4')(4)查询所有课程名称中含有“算法”的课程编号。ameFROMCoursesameLIKE'%算法%'/*查询得到算法分析与设计、数据结构与算法分析*/(5)查询所有选课记录的课程号(不重复显示)。oFROMReports(6)统计所有老师的平均工资。SELECTAVG(Tsalary)FROMTeachers(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。:..SELECTTno,AVG(Score)FROMReportsGROUPBYTnoORDERBYAVG(Score)DESC(8)统计各个课程的选课人数和平均成绩。o,COUNT(Sno),AVG(Score)FROMReportso(9)查询至少选修了三门课程的学生编号和姓名。SELECTSno,SnameFROMStudentsWHERESnoIN(SELECTSno:..FROMReportsGROUPBYSnoHAVINGCOUNT(*)>=3)(10)查询编号S26的学生所选的全部课程的课程名和成绩。ame,,='S26'o=o(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。SELECTSno,SnameFROMStudentsWHERESnoIN(:..FROMReports,Courseso=ame='数据库原理及其应用')(12)求出至少被两名学生选修的课程编号。oFROMReportsX,ReportsYo=<(13)查询选修了编号S26的学生所选的某个课程的学生编号。,ReportsYo=='S26'/*注:在本题中,如果要求是“查询选修了编号S26的学生所选的某个课程的其他学生编号”时,也就是不包含编号S26学生自身的情况时,在查询条件WHERE中,<*/(14)查询学生的基本信息及选修课程编号和成绩。:..,,,,,Repo,=(15)查询学号S52的学生的姓名和选修的课程名称及成绩。,ame,,Courses,==='S52'(16)查询和学号S52的学生同性别的所有学生资料。SELECT*FROMStudentsWHERESsex=(SELECTSsexFROMStudents:..WHERESno='S52')(17)查询所有选课的学生的详细信息。SELECT*FROMStudentsWHERESnoIN(SELECTSnoFROMReports)(18)查询没有学生选的课程的编号和名称。ameFROMCoursesoNOTIN:..(oFROMReports)(19)查询选修了课程名为C++的学生学号和姓名。SELECTSno,SnameFROMStudentsWHERESnoIN(SELECTSnoFROMReportsoIN(o:..FROMCoursesame='C++'))(20)找出选修课程UML或者课程C++的学生学号和姓名。SELECTSno,SnameFROMStudentsWHERESnoIN(SELECTSnoFROMReportsoIN(o:..FROMCoursesame='C++'ame='UML'))(21)找出和课程UML或课程C++的学分一样课程名称。ameFROMCoursesredit=SOME(reditFROMCoursesame='UML'ame='C++')/*注:在本题中,将=SOME换成=ANY或IN都可行。*/:..(22)查询所有选修编号C01的课程的学生的姓名。SELECTSnameFROMStudentsWHEREEXISTS(SELECT*FROMReportso='C01'=)(23)查询选修了所有课程的学生姓名。SELECTSnameFROMStudentsWHERENOTEXISTS(:..SELECT*FROMReportsXWHERENOTEXISTS(SELECT*==o))(24)利用集合查询方式,查询选修课程C++或选择课程JAVA的学生的编号、姓名和积分。SELECTSno,Sname,ScreditFROMStudentsWHERESnoIN:..(SELECTSnoFROMReportso=(oFROMCoursesame='C++'))UNIONSELECTSno,Sname,ScreditFROMStudents:..WHERESnoIN(SELECTSnoFROMReportso=(oFROMCoursesame='JAVA'))(25)实现集合交运算,查询既选修课程C++又选修课程JAVA的学生的编号、姓名和积分。SELECTSno,Sname,Scredit:..FROMStudentsWHERESnoIN(,ReportsYWHERE(o=(oFROMCoursesame='C++')o=(oFROMCoursesame='JAVA':..))=)(26)实现集合减运算,查询选修课程C++而没有选修课程JAVA的学生的编号。基本的语句模式如下:SELECTSnoFROMReportso='C01'ANDSnoNOTIN(o='C03')本题具体的SQL语句SELECT*FROMStudentsWHERESnoIN(SELECTSnoFROMReportso=(ame='C++')ANDSnoNOTIN(SELECTSnoFROMReportsWHERE:..Cno=(ame='JAVA')))(27)求平均成绩在75分以上的课程名ame,avg(Score)aspjcjfromCOURSE,Reportsom=oohavingavg(Score)>75(28)检索“张三”同学不学的课程的课程号ofromCoursesonotin(ofromStudents,=:..='张三')实验3数据更新1、insertintoStudentsvalues('S78','李迪','***********.cn',0,'男')2、o,COUNT(tSno,AVG(Score)AVGScorefromReportso33、updatestudentssetSno='S70'whereSname='李迪'4、updateTeacherssetTsalary=Tsalary+500:..5、updateReportssetScore=Score+6where'数据库原理及其应用'=(ofromCourseso=o)And'刘华'=(=)6、delete:..fromStudentswhereSname='李迪'7、deletefromCoursesame='JAVA'8、deletefromCoursesredit<=4实验4SQL的视图1、createviewCS_ViewASselectSno,o,ScorefromReports:..whereScore>=602、,ame,,Courses,Teachers,===、createviewEXP_View(ame,Score),ame,+5fromStudents,Courses,==o4、createviewGroup_View(Sno,AVGScore)AS:..selectSno,AVG(Score)fromReportsgroupbySno5、createviewVV_View(Sno,o,AVGScore)AsselectSno,o),AVG(Score)fromCS_ViewgroupbySno6、createviewC_viewAsselectSnamefromStudents,Courses,==oAndCname='数据库原理及其应用':..7、insertintoCS_ViewValues('S52','T02','C02','59')8、UPDATECS_ViewSETScore=Score+10o='C01'9、DELETEFROMCS_ViewWHERESno='S03'10、dropviewSCT_ViewdropviewCS_View实验5数据控制1、grantselect:..onCoursestopublic2、grantinsert,updateonStudentstoUSER1withgrantoption3、grantinsert,update,select(Sno)onReportstoUSER24、grantinsert,updateonStudentstoUSER2withgrantoption:..5、revokeselectonCoursesfromUSER16、grantinsert,updateonStudentstoUSER3withgrantoptiongrantinsert,updateonStudentstoUSER1revokeinsert,updateonStudentsfromUSER3