根据数据库表格查询数据–笔试题

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。根据数据库表格查询数据–笔试题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1.有如下几个数据表(Mysql库),根据要求写出Sql。
——————————————————————————
学生表:(字段:编号、学生姓名、出生日期、性别)
t_student

id name birthday gender
3 张天诚 1989-01-01
4 李偲偲 1990-12-21
1 庞中华 1989-01-01
2 席永社 1990-12-21
5 马小雨 1991-12-21
6 王思亮 1990-05-20
7 庞中华 1993-09-08

——————————————————————————

课程表:(字段:课程号、课程名称、教师编号)

t_course

id cou_name tea_id
C01 语文 T002
C02 数学 T003
C03 英语 T004

——————————————————————————

成绩表:(字段:学生编号、课程编号、分数)

t_score

stu_id cou_id score
1 C01 80
2 C02 90
3 C03 99
4 C02 60
5 C03 80
6 C01 80
7 C02 50
8 C03 80
1 C02 67
3 C01 88
6 C03 66
7 C03 59
3 C02 46

——————————————————————————

教师表:(字段:教师编号、教师姓名)

t_teacher

id name
T001 李四
T002 张三
T003 王五
T004 赵六

——————————————————————————
查找1990年出生的学生名单;

select id name from t_student where year(birthday) = 1990;

查询所有学生的学号、姓名、选课数、总成绩;

select a.id,a.name,count(b.cou_id) as 选课数,SUM(b.score) as 总成绩
from t_student as a left join t_score as b
on a.id = b.stu_id
group by a.id,a.name;

查询出每门课程的及格人数和不及格人数;

SELECT cou_id,
sum(case when score>=60 then 1
else 0
end) as 及格人数,
sum(case when score < 60 then 1
else 0
end) as 不及格人数
from t_score
group by cou_id;

查询没有学全所有课的学生的学号、姓名;

select id,name
from t_student
where id in(
select stu_id
from t_score
group by stu_id
having count(cou_id) < (select count(id) from t_course)
);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198000.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!