2023年数据库实验报告4_第1页
2023年数据库实验报告4_第2页
2023年数据库实验报告4_第3页
2023年数据库实验报告4_第4页
2023年数据库实验报告4_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验内容与规定请有选择地实践以下各题。(1)基于“教学管理”数据库jxgl,使用SQL的查询语句表达下列查询:①检索年龄大于23岁的男学生的学号和姓名;SELECTSno,SnameFROMStudentWHERESsex=,男'ANDSage>23;②检索至少选修一门课程的女生姓名;SELECTSnameFROMStudentWHERESsex='女'ANDSnoIN(SELECTSnoFROMSCGROUPBYSnoHAVINGcount(*)>=1;);③检索王同学不学的课程的课程号;SELECTCno;FROMCourseWHERECnoNOTIN(SELECTCnoFROMStudent,SCWHERESnamelike'王%'ANDStudent.Sno=SC.Sno);④检索至少选修两门课程的学生学号;WHERETEACHER.TNO=COURSE.TNOANDSC.C0N=COURSE.C0NGROUPBYSC.CNOHAVINGcount(SNO)>20;11查询选修编号为“8105”课程且成绩至少高于其选修编号为“8245”课程成绩的同学的SNO及“8105”课程成绩,并按成绩从高到低依次排列;SELECTSNOGRADEFROMSCXWHERECN0=,8105'ANDGRADE>(SELECTGRADEFROMSCYWHERECNO=*8245'ANDX.SNO=Y.SNO)ORDERBYGRADEDESC;12查询选修编号为“8105”课程且成绩高于所有选修编号为“8245”课程成绩的同学的CNO、SNO、GRADE;SELECTCNO,SNO,GRADEFROMSCWHERECNO'8105'ANDGRADE>(SELECTMAX(GRADE)FROMSCWHERECNO='8245'ANDX.CN0=Y.SNO);13列出所有教师和同学的姓名,SEX,AGE;SELECTTNAME,TEACHER.SEX.TI:ACHER.AGE,SNAME,STUDENT.SEX,STUDENT.AGFROMTEACHER,SC14查询成绩比该课程平均成绩高的学生的成绩表;SELECT*FROMSC.XGROUPBYSNOHAVINGGRADE)(0SELECTAVG(GRADE)FROMSC.YWHEREX.CN0=Y.CNOGROUPBYCNO);15列出所有任课教师的TNAME和DEPT;SELECTTNAME,DEPTFROMTEACHER,COURSEWHERETEACHER.TNO=COURSE.TNO16列出所有未讲课教师的TNAUE和DEPT;SELECTTNAME,DEPYFROMTEACHERWHERENOTEXISTS(SELECT大FROMCOURSEWHERETEACHER.TNOCOURSE.TNO);17列出至少有4名男生的班号;SELECTCLASSFROMSTUDENTGROUPBYCLASSHAVINGcount(SNO)>=4;18查询不姓“张”的学生记录;SELECT*FROMSTUDENTWHERESNAMENOTLIKE'张%’;9查询每门课最高分的学生的SNO,CNO,GRADE;SELECTSNO,CNO,GRADEFROMSCGROUPBYCNOHAVINGGRADE=MAX(GRADE);0查询与“李华”同性并同班的同学SNAME;SELECTSNAMEFROMSTUDENTXWHERECLASS=(SELECTCLASSFROMSTUDENTYWHERESNAME=>李华'ANDSEX=(SELSCTSEXFROMSTUDENTZWHERESNAME=,李华'ANDX.SNO=Y.SNOANDY.SNO=Z.SNO);21查询“女”教师及其所上的课程;SELECTTNAME,CNO,CNAMEFROMTEACHER,COURSEWHERETEACHER.TNO=COURSE.TNO,SEX=,女';22查询选修“数据库系统”课程的“男”同学的成绩表;SELECT*FROMSC,COURSE,STUDENTWHERESTUDENT.SNO=SC.SNOANDCOURSE.CNO=SC.CNOANDCNAME=>数据库系统’ANDSEX='男';23查询所有比刘涛年龄大的教师姓名,年龄和刘涛的年龄;SELECTTNAME,AGEFROMTEACHERXWHERESNAME=,刘涛'ORAGE>(SELECTAGEFROMTEACHERYWHEREX.TNO=Y.TNOANDSNAME:'刘涛');24查询不讲授“8106”号课程的教师姓名。SELECTTNAMEFROMTEACHER,COURSEWHERETEACHER.NO=COURSE.TNOANDCNONOTIN(8106);SELECTDISTINCTSnoFROMSCGROUPBYSnoHAVINGcount(*)>=2;⑤检索所有学生都选修的课程的课程号与课程名;SELECTCno,CnameFROMCourseWHERENOTEXISTS(SELECT*FROMStudentWHERENOTEXISTS(SELECT*FROMSCWHERESC.Sno=Student.SnoANDSC.Cno=Course.Cno));⑥检索选修了所有3学分课程的学生学号;SELECTDISTINCTSnoFROMSCXWHERENOTEXISTS(SELECT*FROMCourseWHERECcredit=3ANDNOTEXISTS(SELECT*FROMSCYWHEREX.Sno=Y.SnoANDCourse.Cno=Y.Cno);(2)基于“教学管理”数据库jxg1,使用SQL的查询语句表达下列查询:①记录有学生选修的课程门数;oSELECTcount(DISTINCTCno)FROMSC;②求选修4号课程的学生的平均年龄;-SELECTAVG(Sage)FROMStudent,SCWHERECno=4ANDStudent.Sno=SC.Sno;③求学分为3的每门课程的学生平均成绩;SELECTAVG(Grade)FROMCourse,SCWHERECcredit=3ANDCourse.Cno=SC.CnoGROUPBYSC.Cno;④记录每门课程的学生选修人数,规定超过3人的课程才记录,规定输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列;SELECTCno,count(Sno)FROMSCGROUPBYCnoHAVINGcount(Sno)>30RDERBYcount(Sno)DESC,CnoASC;⑤检索学号比“王菲”同学大而年龄比他小的学生姓名;SELECTSnameFROMStudentXWHERESno>(SELECTSnoFROMStudentYWHERESname=,王菲'ANDSage>(6ELECTSageFROMStudentZWHERESname=,王菲'ANDX.Sno=Z.SnoANDY.Sno=Z.Sno));⑥检索姓名以“王”打头的所有学生的姓名和年龄;SELECTSname,SageFROMStudentWHERESnameLIKE'王%';⑦在SC中检索成绩为空置的学生学号和课程号;SELECTSno,CnoFROMSCWHEREGradeisNULL;⑧求年龄大于女同学平均年龄的男学生姓名和年龄;SELECTSname,SageFROMStudentXWHERESsex=,男'ANDSage>(•SELECTAVG(Sage)FROMStudentWHERESsex=,女'ANDX.Sno=Y.Sno);⑨求年龄大于所有女同学年龄的男同学姓名和年龄;SELECTSname,SageFROMStudentXWHERESsex=,男'ANDSage>(SELECTMAX(Sage)FROMStudentYWHERESsex=,女'ANDX.Sno=Y.Sno);⑩检索所有比“王华”年龄大的学生姓名,年龄和性别;SELECTSname,Sage,SsexFROMStudentXWHERESage>(oSELECTSageFROMStudentYWHERESname='王华'ANDX.Sno=Y.Sno);①检索选修“2”课程的学生中成绩最高的学生和学号;SELECTSname,SC.SnoFR0MStudent,SCWHERECno=2ANDStudent.Sno=SC.Sno;②检索学生姓名和其所选修课程的课程号和成绩;SELECTSname,Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.SnoGROUPBYSnamc;③检索选修4门以上课程的学生总成绩(不记录不及格的课程),并规定按总成绩的降序排列出来;SELECTSno,SUM(Grade)FROMSCXWHEREGrade>=60ANDSnoIN(oSELECTSnoFROMSCYWHEREX.Sno=Y.SnoGROUPBYSnoHAVINGcount(Cno)>4)ORDERBYSUM(Grade)DESC;(3)设有表4-1〜表4-4的4个基本表(表结构于表内容是假设的),请先创建数据库及根据表内容创建表结构,并添加表记录,写出实现以下各题功能的SQL语句:创建以下4各表:CREATETABLESTUDENT(SNOCH/\R(6)PRIMARYKEY,SNAMECHAR(20)UNIQUE,SEXCHAR(2),AGESMALLINT,CLASSCHAR(4));CREATETABLETEACHER(TNOCHAR(3)PRIMARYKET,TNAMWCHAR(20)UNIQUE,SEXCHAR(2),AGESMALLINT,PROFCHAR(10),DEPTCHAR(10));CREATETABLECOURSE(CNOCHAR(4)PRIMARYKEY,CNAMECHAR(20)UNIQUE,TNOCHAT(3),FOREIGNKEYTNOREFERENCESTEACHER(TNO));CREATETABLESC(SNOCHAR(6),CNOCHAR(4),GRADESMALLINT,PRIMARYKEY(SNO,CNO),FOREIGNKEYSNOREFERENCESSTUDENT(SNO),FOREIGNKEYCNOREFERENCESCOURSE(CNO));插入数据:INSERTINTOSTUDENTVALUES('980101'李华','男',19,'9801');同上方法依次插入数据①杳询选修课程“8105”且成绩在80到90之间的所有记录;SELECT*FROMSCWHERECN0=,8105'ANDGRADEBETWEEN80AND90;②查询成绩为79,89或99的记录;SELECT*FROMSCWHEREGRADEIN(79,89,99);③查询“9803”班的学生人数;SELECTcount(SNO)FROMSTUDENTWHERESNOLIKE'9803%';④查询至少有20名学生选修的并且课程号以8开头的课程及平均成绩;SELECTCNO,AVG(GRADE)FROMSCWHERECNOLIKE'8%'GROUPBYCNO;HAVINGcount(SNO)>=20;⑤查询最低分大于80,最高分小于95的SNO与平均分;SELECTSNO,AVG(GRADE)FROMSCGROUPBYSNOHAVINGMIN(GRADE)>80ANDMAX(GRADE)<95;⑥查询“9803”班的学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论