Sql 练习题 (二)

(1)查询全体学生的学号与姓名。

select Sno 学号,Sname 姓名 from student;

 

(2)查询全体学生的姓名、学号和所在系
 

select Sname 姓名 , Sno 学号 , Dept 所在系 from student;

(3)查询全体学生的详细记录。
 

select * from student;

(4)查询全体学生的姓名及其出生年份。
 

select Sname 姓名 , Sage 出生年份 from student;

(5)查询计算机系全体学生。

select Sname from student where dept='计算机系';

(6)查询所有年龄20岁以下的学生的姓名及年龄。
 

select Sname 姓名 , Sage 年龄 from student where Sage<20;

(7)查询成绩不及格学生的学号。

select s.Sno 学号 from student s join sc c  on s.Sno=c.Sno where c.grade<60;

(8)查询考试成绩在80~90之间的学生学号、课程号和成绩。
 

select s.Sno 学号 , c.Cno 课程号 , c.Grade 成绩  
from student s join sc c  on s.Sno=c.Sno 
where c.grade between 80 and 90 ;

(9)查询考试成绩不在80~90之间的学生学号、课程号和成绩。
 

select s.Sno 学号 , c.Cno 课程号 , c.Grade 成绩  
from student s join sc c  on s.Sno=c.Sno 
where c.grade <80 or c.grade >90 ;

(10)查询信息管理系、通信工程系和计算机系学生的姓名和性别。
 

select Sname 姓名 , Ssex 性别 
from student 
where dept in('信息管理系','通信工程系','计算机系');

(11)查询信息管理系、通信工程系和计算机系三个系之外的其他系学生的姓名和性别。
 

select Sname 姓名 , Ssex 性别 
from student 
where dept not in('信息管理系','通信工程系','计算机系');

(12)查询姓“张”的学生详细信息。

select * from student where Sname like '张%';

(13)查询姓“张”、姓“李”和姓“刘”的学生的详细信息。
 

select * from student where Sname like '张%' or Sname like '刘%' or Sname like '李%';

(14)查询名字的第2个字为“小”或“大”的学生的姓名和学号。

select Sname 姓名 ,Sno 学号 from student where Sname like '_小%' or Sname like '_大%';

  (15) 查询所有不姓“刘”的学生姓名。

select Sname 姓名 from student where Sname not like '刘%';

(16)在Student表中查询学号的最后一位不是2、3、5的学生信息。

select * from student where Sno not like '%2' and Sno not like '%3' and Sno not like '%5';

(17)查询还没有考试的学生的学号和相应的课程号。

select s.Sno 学号 , c.Cno 课程号 from student s join sc c  on s.Sno=c.Sno where c.grade is null ;

(18)查询计算机系男生的姓名。

select Sname 姓名 from student where dept ='计算机系' and Ssex='男';

(19)查询C002和C003课程中考试成绩在80~90的学生的学号、课程号和成绩。

select * from Sc where Cno ='C002' or Cno='C003' and Grade>=80 and Grade <=90;

(20)查询修了“C002”课程的学生的学号及成绩,查询结果按成绩降序排列。

select Sno 学号 , grade 成绩 from sc where Cno='C002' order by grade desc;

(21)查询全体学生详细信息,结果按系名升序排列,同一个系的学生按年龄降序排列。

select * from student order by dept,Sage desc;

(22)统计学生总人数。

select count(*) 学生总人数 from student;

(23)统计选修了课程的学生人数。

select count(distinct s.Sno) 学生人数 from student s join sc c on s.Sno=c.Sno ;

(24)计算学号为“0811101”的学生的考试总成绩。

select SUM(grade) 考试总成绩 from sc where Sno='0811101';

(25)计算“0831103”学生的平均成绩。

select SUM(grade)/COUNT(Cno) from sc where Sno='0831103' and grade is not null;

(26)查询“C001”课程考试成绩的最高分和最低分。

select MAX(grade) 最高分,MIN(grade) 最低分 from sc where Cno='C001';

(27)统计每门课程的选课人数,列出课程号和选课人数。

select Cno 课程号, COUNT(*) 选课人数 from sc group by Cno;

(28)统计每个学生的选课门数和平均成绩。

select Sno 学号,COUNT(*) 选课人数,AVG(nullif(grade,0)) 平均成绩 from sc group by Sno;

(29)统计每个系的女生人数。

select dept 系名 , COUNT(*) 人数 from student where Ssex='女' group by dept;

(30)统计每个系的男生人数和女生人数以及男生的最大年龄和女生的最大年龄,结果按系名的升序排序。

select dept 系名 , COUNT(*) 人数 from student where Ssex='女' group by dept;

(31) 查询选课门数超过3门的学生的学号和选课门数。

select Sno 学号 ,  COUNT(Sno) 选课门数 from sc group by Sno having COUNT(Sno)>3;

(32) 查询选课门数大于等于4门的学生的平均成绩和选课门数。

select Sno 学号 , AVG(nullif(grade,0)) 平均成绩 , COUNT(Sno) 选课门数 
from  sc 
group by Sno 
having COUNT(Sno)>=4;

(33) 查询计算机系和信息管理系每个系的学生人数。

select dept 系名 , COUNT(dept) 学生人数 
from student 
group by dept 
having dept in('计算机系','信息管理系');

(34)查询计算机系和信息管理系至少30人的每个系的学生人数。

select dept 系名 , COUNT(dept) 学生人数 
from student 
group by dept 
having dept in('计算机系','信息管理系') and COUNT(dept)>=30;

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好学的9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值