(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;