数据库练习题二

2025-04-13 12:14:45

1、表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) –教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) –学生编号,课程编号,分数

2、查询"01"课程比"02"课程成绩高的学生的信息及课程分数selectStudent.*,b.s忧溲枷茫_score'课程01的分数',c.s_score'课程02的分数'fromStudent,Scoreb,Scorecwhereb.s_score>c.s_scoreandc.c_id='02'andb.c_id='01'andStudent.s_id=b.s_idandStudent.s_id=c.s_id

数据库练习题二

3、查询"01"课程比"02"课程成绩低的学生的信息及课程分数selectStudent.*,b.s_score'课程01的分数',c.s_score'课程02的分数'fromStudent,Scoreb,Scorecwhereb.s_score<c.s_scoreandc.c_id='02'andb.c_id='01'andStudent.s_id=b.s_idandStudent.s_id=c.s_id

数据库练习题二

4、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩selectStudent.s_id,Student.s_name,avg(s_score)as'平均分'fromStudentleftjoinscoreonStudent.s_id=Score.s_idgroupbyStudent.s_id,Student.s_namehavingavg(s_score)>=60

数据库练习题二

5、注意事项 :1、where 后不能跟聚合函数,因为where执行顺序大于聚合函数。2、where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。3、having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

6、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩-- (包括有成绩的和无成绩的)selectStudent.s_id,Student.s_name,avg(s_score)as媪青怍牙'平均分'fromStudentleftjoinscoreonStudent.s_id=Score.s_idgroupbyStudent.s_id,Student.s_namehavingavg(s_score)<=60unionselectStudent.s_id,Student.s_name,avg(s_score)as'平均分'fromStudentleftjoinscoreonStudent.s_id=Score.s_idgroupbyStudent.s_id,Student.s_namehavingavg(s_score)isnull

数据库练习题二

7、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩selectStudent.s_id,Student.s_name,count(Course.c_id)as'选课总数',sum(Score.s_score)as'所有课程总成绩'fromStudentleftjoinScoreonStudent.s_id=Score.s_idleftjoinCourseoncourse.c_id=Score.c_idgroupbyStudent.s_id,Student.s_name

数据库练习题二

8、10、查询没学过"张三"老师授课的同学的信息select*fromstudentswhereStudent.s_idnotin(selectdistinctStudent.s_idfromstudentleftjoinScoreonStudent.s_id=Score.s_idleftjoinCourseonScore.c_id=Course.c_idleftjoinTeacheronCourse.t_id=Teacher.t_idwhereTeacher.t_name='张三')

数据库练习题二

9、查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息selectstudent.*fromstudent,scoresc,scoresc1wheresc.s_id=sc1.s_idandstudent.s_id=sc.s_idandsc.c_id='01'andsc1.c_id='02'因为我操作的时候是基于sql2012和plsql 所以截图就有两种

数据库练习题二
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢