链表查询试题
题:A(学生表[id,姓名]),B(成绩表[id,课程名,成绩])两个表通过id进行关联。
- SQL Aggregate函数:avg() count() max() min() sum() first() last()
注:因为代码过长,我就分行写方便阅读,其实是一句执行代码。
1.查询’李四’的语文成绩
//方法一:
Select 姓名,成绩,课程名 from 成绩表 join 学生表 on 成绩表.id = 学生表.id
where 课程名='语文' and 姓名='李四';
//方法二:
Select 姓名,成绩,课程名 from 成绩表,学生表 where 成绩表.id = 学生表.id
and 课程名='语文' having (姓名 = ‘李四’);
2.查询全班‘英语的成绩
Select 姓名,成绩,课程名 from 成绩表 join 学生表 on 成绩表.id = 学生表.id
where 课程名 = '英语';
3.查询语文分数与张三一样的学生姓名
Select 姓名,成绩,课程名 from 成绩表 join 学生表 on 成绩表.id = 学生表.id
where 课程名 = '英语' and score=(Select 姓名,成绩,课程名 from 成绩表
join 学生表 on 成绩表.id = 学生表.id where 课程名='语文' and 姓名='李四');
4.全班每一个人的总成绩并降序排序
select 姓名,sum(成绩) 总分 from 成绩表,学生表
where 成绩表.id = 学生表.id group by name order by sum(成绩) desc ;
//升序:asc 降序:desc
5.全班的平均分
Select avg(成绩) as 平均成绩 from 成绩表;