常用的数据库查询语言



要求:
1)查出“计算机系”的所有学生信息。 
2)查出“韩顺平”所在的院系信息。
3)查出在“行政楼”办公的院系名称。
4)查出男生女生各多少人。
5)查出人数最多的院系信息。
6)查出人数最多的院系的男女生各多少人。
7)查出跟“罗弟华”同籍贯的所有人。
8)查出有“河北”人就读的院系信息。
9)查出跟“河北女生”同院系的所有学生的信息。


参考答案:
1)select 学生.* from 学生 where 院系ID=(select 院系ID from 院系 where 院系名称='计算机系')
1) select 学生.* from 学生 inner join 院系 on 学生.院系ID=院系.院系ID where 院系名称='计算机系'
2)select 院系.* from 院系 where 院系ID=(select 院系ID from 学生 where 姓名='韩顺平')
2)select 院系.* from 学生 inner join 院系 on 学生.院系ID=院系.院系ID where 姓名='韩顺平'
3) select 院系名称 from 院系 where 系办地址 like '%行政楼%'
4) select count(*) as c from 学生 group by 性别
5) select * from 院系 where 院系ID = (select 院系ID from 学生表 group by 院系ID order by count(*) desc limit 0,1)
5) select * from 院系 inner join (select count(*) as 数量,  院系ID from 学生表 group by 院系ID  ) as t on t.院系ID=院系.院系ID order by 数量 desc limit 0,1
5)select * from 院系 where 院系ID  in(select 院系ID from 学生表 group by 院系ID having count(*) >= all(select count(*) as c from 学生表 group by 院系ID));
6) select 性别, count(*) from 学生表 where 院系ID = (select 院系ID from 学生表 group by 院系ID order by count(*) desc limit 0,1) group by 性别
7)select * from 学生表 where 籍贯=(select 籍贯 from 学生表 where 学生='罗弟华') and 姓名<>'罗弟华'
8)select * from 院系 where 院系ID in (select 院系ID from 学生表 where 籍贯='河北')
9)select * from 学生表 where 院系ID  in (select 院系ID from 学生表 where 籍贯='河北' and 性别='女')




〉〉〉


学生成绩查询系统(偏难,尽量做,尽量琢磨):
数据结构大致如下:


注意:以上数据并不意味着全部数据,自己可根据题目要求构建(插入)适当数量的数据。
要求:
1)查询选修了 MySQL 的学生姓名;
2)查询 张三 同学选修了的课程名字;
3)查询只选修了1门课程的学生学号和姓名;
4)查询选修了至少3门课程的学生信息;
5)查询选修了所有课程的学生;
6)查询选修课程的学生人数;
7)查询所学课程至少有一门跟 张三 所学课程相同的学生信息。
8)查询两门及两门以上不及格同学的平均分


参考答案(嘘,不许告诉别人):
1)select name from stu inner join stu_kecheng on stu.id=stu_kecheng.stu_id inner join kecheng on kecheng.id=stu_kecheng.kecheng_id where kecheng_name='mysql';
2)select kecheng_name from stu inner join stu_kecheng on stu.id=stu_kecheng.stu_id inner join kecheng on kecheng.id=stu_kecheng.kecheng_id where stu.name='张三';
3)select id, name from stu where id in(select stu_id from stu_kecheng group by stu_id having count(kecheng_id)=3 );
4)select * from stu where id in( select stu_id from stu_kecheng group by stu_id having count(kecheng_id) = (select count(id) as c from kecheng));
5)select * from stu where id in( select stu_id from stu_kecheng group by stu_id having count(kecheng_id)>=3);
6)select count(distinct stu_id) as c from stu_kecheng;
7)select id from stu where id in( select stu_id from stu_kecheng where kecheng_id in ( select kecheng_id from stu_kecheng where stu_id=(select id from stu where name = '张三')) );
8)select stu_id,avg(score) from stu_kecheng group by stu_id having sum(score<60)>=2;
8)select avg(score) from stu_kecheng where stu_id in(select stu_id from stu_kecheng group by stu_id having sum(score<60)>=2)


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值