数据库实验8报告.docx
- 文档编号:7089777
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:16
- 大小:19.75KB
数据库实验8报告.docx
《数据库实验8报告.docx》由会员分享,可在线阅读,更多相关《数据库实验8报告.docx(16页珍藏版)》请在冰豆网上搜索。
数据库实验数据库实验8报告报告数据库原理及应用实验报告实验名称:
数据检索
(2)-多表查问学院:
计算机学院班级:
计算机应用技术大专班学号:
201113131121姓名:
黄锡杏实验日期:
2013年4月19日一、实验准备21、设施22、知识点2二、实验目的3三、实验内容3
(1).查问全部班级的期末成绩均匀分,并依据均匀分降序排序3
(2).查问教师基本信息和教讲课程信息,此中包含未分派课程的教师信息5(3).查问090501班级中选修了韩荣膺老师讲解的课程的学生的学号、姓名、课程名和期末成绩6(4).查问每门课程的课程号、课程名和选修该课程的学生人数,并按所选人数升序排序7(5).查问两门及以上课程的期末成绩超出80分的学生的姓名及其均匀成绩8(6).查问入学考试成绩最高的学生的学号、姓名和入学成绩9(7).查问全部教授c05127号课程的教师信息9(8).查问同时教授c05127号和c05109号课程的教师信息10(9).查问起码选修了姓名为韩吟秋的学生所选课程中一门课的学生的学号和姓名.11(10).查问没有被任何学生选修的课程编号、课程名和学分11(11).查问“C语言”课程期末成绩比“电子技术”课程期末成绩高的全部学生的学号和姓名12(12).查问全部班级期末均匀成绩的最高分,并将其赋值给变量,经过PRINT语句输出13(13)适用游标输出学生姓名、选修课程名称和期末考试成绩14四、总结15一、实验准备1、设施PC机一台、SQLServer2005(公司版)2、知识点回首教材主要知识点,主要在教材的第六章
(1)、利用多表连结方式查问数据(JOIN函数)
(2)、利用子查问方式查问数据(嵌套查问)(3)、利用游标办理结果集的基本过程(4)、上网搜寻有关的不过来增补课本的缺点(如JOIN函数的不同用法)二、实验目的1、要点掌握JOINON语句的关系及应用,并懂得与子句查问的变换;2、掌握连结查问、子查问、游标、大对象种类数据的基本观点;3、掌握多表连结的各样方法,包含内连结、外连结、交错连结等;4、掌握子查问的方法,包含有关子查问和不有关子查问5、掌握游标办理结果集的基本过程三、实验内容要依据供给的实验内容资料,照实填写实验的操作步骤步骤、操作语句、暂时或最后结果等,主要内容见下;
(1).查问全部班级的期末成绩均匀分,并依据均匀分降序排序代码:
useteachinggoselectclassno,avg(final)fromscoreinnerjoinstudenton(score.studentno=student.studentno)wherefinalisnotnullgroupbyclassnoorderbyavg(final)desc结果:
对照下边
(2).查问教师基本信息和教讲课程信息,此中包含未分派课程的教师信息代码:
useteachinggoselectteacher.*,courseno,classnofromteacherleftjointeach_classon(teacher.teacherno=teach_class.teacherno)结果:
(3).查问090501班级中选修了韩荣膺老师讲解的课程的学生的学号、姓名、课程名和期末成绩代码:
useteachinggoselectstudent.studentno,sname,cname,finalfromscorejoinstudenton(score.studentno=student.studentno)joincourseon(score.courseno=course.courseno)jointeach_classon(score.courseno=teach_class.courseno)jointeacheron(teach_class.teacherno=teacher.teacherno)wheretname=韩荣膺andstudent.classno=090501结果:
(4).查问每门课程的课程号、课程名和选修该课程的学生人数,并按所选人数升序排序代码:
useteachinggoselectcourse.courseno,cname,count(*)fromscorejoinstudenton(score.studentno=student.studentno)joincourseon(score.courseno=course.courseno)groupbycourse.courseno,cnameorderbycount(*)结果:
(5).查问两门及以上课程的期末成绩超出80分的学生的姓名及其均匀成绩代码:
useteachinggoselectstudent.studentno,sname,avg(final)asavgeragefromstudentinnerjoinscoreon(student.studentno=score.studentno)wherefinalisnotnullandfinal=80groupbystudent.studentno,snamehavingcount(*)=2结果:
(6).查问入学考试成绩最高的学生的学号、姓名和入学成绩代码:
useteachinggoselectstudentno,sname,pointfromstudentwherepoint=(selectmax(point)fromstudent)结果:
(7).查问全部教授c05127号课程的教师信息代码:
useteachinggoselect*fromteacherwhereteachernoin(selectteachernofromteach_classwherecourseno=c05127)结果:
(8).查问同时教授c05127号和c05109号课程的教师信息代码:
useteachinggoselect*fromteacherwhereteachernoin(selecta.teachernofromteach_classaon(a.teachernowherea.coursenoinner=b.teacherno=c05127join)andteach_classbb.courseno=c05109)结果:
(9).查问起码选修了姓名为韩吟秋的学生所选课程中一门课的学生的学号和姓名代码:
useteachinggoselectdistinctstudent.studentno,snamefromstudentjoinscoreon(student.studentno=score.studentno)wheresname韩吟秋andcoursenoin(selectcoursenofromscorejoinstudenton(score.studentno=student.studentno)wheresname=韩吟秋)结果:
(10).查问没有被任何学生选修的课程编号、课程名和学分代码:
useteachinggoselectcourseno,cname,creditfromcoursewherenotexists(select*fromscorewherescore.courseno=course.courseno)结果:
(11).查问“C语言”课程期末成绩比“电子技术”课程期末成绩高的全部学生的学号和姓名代码:
useteachinggoselectstudent.studentno,snamefromscoresc1joinstudenton(sc1.studentno=student.studentno)joincoursec1on(sc1.courseno=c1.courseno)whereame=C语言andexists(select*fromscoresc2joincoursec2on(sc2.courseno=c2.courseno)whereame=电子技术andsc1.studentno=sc2.studentnoandsc1.finalsc2.final)结果:
(12).查问全部班级期末均匀成绩的最高分,并将其赋值给变量,经过PRINT语句输出代码:
useteachinggodeclaremaxnumeric(6,2)selectmax=max(均匀分)from(selectclassnoas班级号,avg(final)as均匀分fromscorejoinstudenton(score.studentno=student.studentno)joincourseon(course.courseno=scorewherefinalisnotnullgroupbyclassno)t.courseno)print全部班级期末均匀成绩的最高分:
+cast(maxasvarchar(6)结果:
(13)适用游标输出学生姓名、选修课程名称和期末考试成绩代码:
useteachinggodeclaresnamenchar(8),cnamenchar(10),finalnumeric(6,2)declaresc_cursorcursorforselectsname,cname,finalfromscorejoinstudenton(score.studentno=student.studentno)joincourseon(score.courseno=course.courseno)opensc_cursorfetchnextfromsc_cursorintosname,cname,finalprint学生姓名课程名称期末成绩print-whilefetch_status=0beginprintsname+cname+cast(finalasnchar(6)fetchnextfromsc_cursorintosname,cname,finalendclosesc_cursordeallocatesc_cursor结果:
四、总结1、在此次实验以前,仔细查阅书籍上有关知识点和代码;2、经过此次实验基本掌握多表连结查问方法、掌握IN子查问的嵌套查问、认识EXISTS嵌套查问方法。
3、子句HAVING()一定要与GROUPBY语句使用,这一点特别重要,因为不当心,在实验中有两三次提示这样的错误,牢记牢记;4、在使用print语句时:
假如把“+”去掉则不会输出max的值,其结果会变为:
因此这里一定加上+号,以下:
出这些问题外,试验过程中我还碰到innerjoinon不一样对象获得不一样结果的问题,这里就不一一分析了!
Whenyouareoldandgreyandfullofsleep,Andnoddingbythefire,takedownthisbook,Andslowlyread,anddreamofthesoftlookYoureyeshadonce,andoftheirshadowsdeep;Howmanylovedyourmomentsofgladgrace,Andlovedyourbeautywithlovefalseortrue,Butonemanlovedthepilgrimsoulinyou,Andlovedthesorrowsofyourchangingface;Andbendingdownbesidetheglowingbars,Murmur,alittlesadly,howlovefledAndpaceduponthemountainsoverheadAndhidhisfaceamidacrowdofstars.ThefurthestdistanceintheworldIsnotbetweenlifeanddeathButwhenIstandinfrontofyouYetyoudontknowthatIloveyou.ThefurthestdistanceintheworldIsnotwhenIstandinfrontofyouYetyoucantseemyloveButwhenundoubtedlyknowingthelovefrombothYetcannotbetogether.ThefurthestdistanceintheworldIsnotbeingapartwhilebeinginloveButwhenIplainlycannotresisttheyearningYetpretendingyouhaveneverbeeninmyheart.ThefurthestdistanceintheworldIsnotstrugglingagainstthetidesButusingonesindifferentheartTodiganuncrossableriverFortheonewholovesyou.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)