SQL语句,已建立学生表(学号,姓名,性别,专业,出生日期,高考分数)和成绩表(课程号,学号,成绩

SQL语句
已建立学生表(学号,姓名,性别,专业,出生日期,高考分数)和成绩表(课程号,学号,成绩,学期),用SQL完成下列操作:
1.查询全体男学生情况,要求结果按出生日期降序排列。
2.从学生表和成绩表两个表中,检索所有成绩多于85分的学号、姓名、课程号、学期和成绩。
3.统计每个专业的学生人数
4.检索出哪些至少有一门课程不及格学生的学号、姓名和专业。

1.查询全体男学生情况,要求结果按出生日期降序排列。

select * from 学生表 s
left join 成绩表 c on s.学号=c.学号
where s.性别='男' order by s.出生日期 desc

2.从学生表和成绩表两个表中,检索所有成绩多于85分的学号、姓名、课程号、学期和成绩。
select s.学号,s.姓名,c.课程号,c.学期,c.成绩 from 学生表 s
left join 成绩表 c on s.学号=c.学号
where c.成绩>=85
3.统计每个专业的学生人数
select s.专业,count(*) from 学生表 s group by s.专业
4.检索出哪些至少有一门课程不及格学生的学号、姓名和专业。

select s.学号,s.姓名,s.专业 from 学生表 s
where exists (
select 1 from 成绩表 c where s.学号=c.学号
and c.成绩<60 )
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
1.查询全体男学生情况,要求结果按出生日期降序排列。
select * from 学生表 where 性别='男' order by 出生日期 desc
2.从学生表和成绩表两个表中,检索所有成绩多于85分的学号、姓名、课程号、学期和成绩。
select a.学号,a.姓名,b.课程号,b.学期,b.成绩 from 学生表 a join 成绩表 b on a.学号=b.学号 where 成绩>85
3.统计每个专业的学生人数
select 专业,count(*) as 学生人数 from 学生表 group by 专业
4.检索出哪些至少有一门课程不及格学生的学号、姓名和专业。
select 学号,姓名,专业 from 学生表 where 学号 in (select distinct 学号 from 成绩表 where 成绩<60)本回答被提问者和网友采纳
相似回答