资源描述:
《数据库原理与应用实验作业参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理与应用实验报告参考答案实验1数据库的建立修改与删除实验2表结构的建立修改删除及完整性约束条件定义实验3数据查询与更新完成以下实验报告:《数据库原理与应用》实验报告院名专业年级班级学号姓名教师成绩一、实验题目实验3数据查询与更新二、实验环境操作系统:WindowsXP。数据库管理系统:MSSQLServer2000或MSSQLServer2008。三、实验目的1.掌握SELECT语句的语法、语义及语用。2.掌握基于单表的查询方法。3.掌握基于多表的查询方法。4.掌握相关与不相关的嵌套查询。5.掌握集合查询。6.掌握插入(INSERT)、修改(UP
2、DATE)和删除(DELETE)语句的使用。四、实验内容(一)规定内容1.单表查询USEST--[3_1]查询全体学生的详细记录。select*fromstudent--[3_2]查询选修了课程的学生学号。SELECTDISTINCTsnoFROMsc--[3_3]将“学生”表中的sno、sname这2列合并为1列snosname输出(不改变表中存储的内容),其余列不变。selectsno+snamesnosname,ssex,sage,sdeptfromstudent--[3_4]查询年龄不在20~23岁之间的学生姓名、系别和年龄。方法1:SELECT
3、sname,sdept,sageFROMstudentWHEREsageNOTBETWEEN20AND23;方法2:SELECTsname,sdept,sageFROMstudentWHEREsage<20orsage>23;--[3_5]查询计算机科学系(cs)、数学系(ma)和信息系(is)学生的姓名和性别。SELECTsname,ssexFROMstudentWHEREsdeptIN('cs','ma','is');--[3_6]查询所有姓“刘”学生的姓名、学号和性别。SELECTsname,sno,ssexFROMstudentWHEREsnam
4、eLIKE'刘%';--[3_7]查询名字中第2个字为"阳"字的学生的姓名和学号。SELECTsname,snoFROMstudentWHEREsnameLIKE'_阳%';--[3_8]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。--查询缺少成绩的学生的学号和相应的课程号。SELECTsno,cnoFROMscWHEREgradeISNULL;--[3_9]查询计算机系年龄在20岁以下的学生姓名。SELECTsnameFROMstudentWHEREsdept='cs'ANDsage<20;--[3_10]查询选修了3号课程的学生的
5、学号及其成绩,查询结果按分数降序排列。SELECTsno,gradeFROMscWHEREcno='3'ORDERBYgradeDESC;--[3_11]查询全体学生情况,查询结果按所在系升序排列,同一系中的学生按性别降序排列。SELECT*FROMstudentORDERBYsdept,sageDESC;--使用集函数--[3_12]查询学生总人数。SELECTCOUNT(*)学生总人数FROMstudent;--[3_13]查询选修了课程的学生人数。SELECTCOUNT(DISTINCTsno)选课人数--注:用DISTINCT以避免重复计算学生人
6、数FROMsc;--[3_14]计算1号课程的最高、最低及平均成绩。SELECTMAX(grade)'1号课程最高分',MAX(grade)'1号课程最低分',AVG(grade)'1号课程平均成绩'FROMscWHEREcno='1'--[3_15]查询学生200215121选修课程的平均成绩。SELECTAVG(grade)学生200215121平均成绩FROMscWHEREsno='200215121'--[3_16]查询学生200215122选修课程的总学分数。SELECTSUM(ccredit)学生200215122学分FROMsc,cours
7、eWHEREsc.cno=course.cnoANDsno='200215122';--使用GROUPBY子句分组--[3_17]求各个课程号及相应的选课人数。SELECTcno课程号,COUNT(sno)选课人数FROMscGROUPBYcno;--使用HAVING短语筛选最终分组结果--[3_18]查询选修了3门(含3)以上课程的学生学号。SELECTsnoFROMscGROUPBYsnoHAVINGCOUNT(*)>=3--也可为:COUNT(cno)>=3--[3_19]查询有2门以上课程是80分以上的学生的学号及(80分以上的)课程数SELEC
8、Tsno学号,COUNT(*)'80分以上的课程数'FROMscWHEREgra