SQL基础题,帮回答并解释,3Q
来源:百度知道 编辑:UC知道 时间:2024/07/05 08:29:24
请设计数据库:教师,课题,学生,成绩。 其中一个教题可教多门课,一个学生需要学习多门课,一个学生一门课只有一次成绩。
1.给出所选修数学的女生
2.给出所有课程的平均成绩
3.按照课程,给出每门课程成绩最高的学生姓名
4.给出张三教师所教学生的课程成绩表。
请设计数据库并回答上面的每个小问题,注:最好有点解释,本人不是太精通SQL
一个教师可以教多门,一个学生需要学习多门课,一个学生一门课只有一次成绩,这又是要求,数据库或表之间存在什么关系呢?请帮帮忙。
1.给出所选修数学的女生
2.给出所有课程的平均成绩
3.按照课程,给出每门课程成绩最高的学生姓名
4.给出张三教师所教学生的课程成绩表。
请设计数据库并回答上面的每个小问题,注:最好有点解释,本人不是太精通SQL
一个教师可以教多门,一个学生需要学习多门课,一个学生一门课只有一次成绩,这又是要求,数据库或表之间存在什么关系呢?请帮帮忙。
数据库定义:
2个表
1、教师表:
教师编号
姓名
科目
2、学生表
学号
姓名
性别
所选科目
成绩
1、所有选数学的女生
select 姓名 from 学生表 where 性别='女' and 所选科目='数学'
2、所有课程的平均成绩
select 所选科目,avg(成绩) as 平均成绩 from 学生表 group by 科目
3、每门课程,成绩最高的学生姓名
select 学生姓名,所选科目,max(成绩) from 学生表 group by 所选科目,学生姓名
4、给出张三教师所教学生的课程成绩表
select 教师表.科目,学生表.学号,学生表.姓名,学生表.成绩 from 学生表 inner join 教师表
on 教师表.科目=学生表.所选科目 group by 教师表.科目
只所以要有教师编号和学生学号,是因为人命可能会重复,只有学号和教师编号是唯一的
要先建模,光写sql不是很直观