预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、实验目的 掌握利用SQL语句完成各种查询操作的能力。 二、实验内容 给定表结构如下: 学生表:student(主键Sno) 学号 Sno姓名 Sname性别 Ssex年龄 Sage所在系 Sdept95001李勇男20CS95002刘晨女21IS95003王敏女18MA95004张力男19IS课程表:Course(主键Cno) 课程号 Cno课程名 Cname先行课 Cpno学分 Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64选课表:SC(主键Sno,Cno,外部键Sno,Cno) 学号 Sno课程表 Cno成绩 Grade950011929500128595001388950022909500238595003359用SQL语句完成以下的要求 四、试验结果 1.查询信息系(IS)的所有学生信息 select* fromstudent wheresdept='IS'; 2.查询选修了“数学”课的所有学生名单 selectsname fromstudent,sc,course wheresc.cno=course.cnoandsc.sno=student.snoandcourse.cname='数学' 3.查询至少选修了一门其直接先行课为5号课程的学生的姓名。 selectsname fromstudent,sc,course wheresc.cno=course.cnoandsc.sno=student.snoandcourse.cpno=5 4.查询全体学生的姓名和出生年份。 selectsname,'YearofBirth'BIRTH,2008-sageBIRTHDAY fromstudent; 5.查询所有姓王的学生。 select* fromstudent wheresnamelike'王%'; 6.查询选修了3号课程的学生姓名及成绩,并按成绩降序排序。 selectsname,grade fromstudent,sc wheresc.sno=student.snoandsc.cno=3 orderbygradedesc;//可有可无,缺省为升序 7.查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。 select* fromstudent orderbysdept,sagedesc; 8.计算2号课程的平均成绩。 selectavg(grade)AVG fromsc wherecno=2; 9.查询选修了2号课程的学生的最高成绩。 selectmax(grade)MAX fromsc wherecno=2; 10.求各个课程号及相应的选课人数。 selectcourse.cno,count(sno) fromcourseleftjoinsc//外连接 oncourse.cno=sc.cno groupbycourse.cno; 11.查询至少选修了3门课程以上的学生学号。 selectsno fromsc groupbysno havingcount(*)>=3; 12.查询“数据库”的间接先行课。 selectb.cname fromcoursea,courseb wherea.cpno=b.cnoanda.cname='数据库'; 13.查询平均成绩最高的学生的学号和姓名。 selectsno,sname fromstudent wheresnoin (selectsno fromsc groupbysno havingavg(grade)>=all (selectavg(grade) fromsc groupbysno ) ) 14.查询数学成绩最高的学生的学号和姓名。 selectstudent.sname,student.sno fromstudent,sc wheresc.sno=student.snoandgradein (selectmax(grade) fromsc,course wherecourse.cno=sc.cnoandcourse.cname='数学' ) 15.查询出成绩最低学号最大的学生学号。 selectsno fromsc wheregradein (selectmin(grade) fromsc )andsnoin( selectmax(sno) fromsc ) 16.查询成绩高于学生平均成绩的记录。 select* fromscx wheregrade> (selectavg(grade) fromscy wherey.sno=x.sno ) 17.查询至少选修了1号课程和3号课程的学生学号。 selectx.sno fromscx,scy wherex..cno='