【SQL】经典50题 [ 2 ]:Q11-Q20
-
- 准备:表的建立
- Q15. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
- Q16. 检索"01"课程分数小于60,按分数降序排列的学生信息
- Q17. 按平均成绩从高到低显示所有学生的平均成绩
- Q18. 查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率
- Q19. 按各科平均成绩从低到高和及格率的百分数从高到低顺序
- Q20. 查询学生的总成绩并进行排名
- Q21. 查询不同老师所教不同课程平均分从高到低显示
- Q22. 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩(❗️重点)
- Q23. 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比(❗️重点)
- Q24. 查询学生平均成绩及其名次
- Q25. 查询各科成绩前三名的记录
- Q26. 查询每门课程被选修的学生数
- Q27. 查询出只选修了一门课程的全部学生的学号和姓名
- Q28. 查询男生、女生人数
- Q29. 查询名字中含有"风"字的学生信息
- Q30. 查询同名同性学生名单,并统计同名人数
原来的顺序有点乱,采用通用的50题哈
准备:表的建立
环境/系统/编译器:MACOS+Mysql+Sequel Pro
- 删除表的语句(重复运行创建表会报错,置于最前)
drop table Student;
drop table SC;
drop table Course;
drop TABLE Teacher;
- 创建表并插入数据
create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙风' , '1990-05-20' , '男');
insert into Student values('04' , '李云' , '1990-08-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '女');
insert into Student values('06' , '吴兰' , '1992-03-01' , '女');
insert into Student values('07' , '郑竹' , '1989-07-01' , '女');
insert into Student values('08' , '王菊' , '1990-01-20' , '女');
create table Course(cid varchar(10),cname varchar(10),tid varchar(10));
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');
create table Teacher(tid varchar(10),tname varchar(10));
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');
create table SC(sid varchar(10),cid varchar(10),score decimal(18,1)