经典sql面试及答案(50)
联想笔记本数据库csdn1010
复习
重点知识/关键词
- like、rlike
- MySQL EXTRACT() 函数
- 行列转换&多行合并为一行(第40)【数据库表行列转置的实现_Mysql】
- 重复数据(第40)
数据库准备
1.学生表 Student(S#,Sname,Sage,Ssex)
- S# 学生编号
- Sname 学生姓名
- Sage 出生年月
- Ssex 学生性别
2.课程表 Course(C#,Cname,T#)
- C# 课程编号
- Cname 课程名称
- T# 教师编号
3.教师表 Teacher(T#,Tname)
- T# 教师编号
- Tname 教师姓名
4.成绩表 SC(S#,C#,score)
- S# 学生编号
- C# 课程编号
- score 分数
create table Student(S# varchar(10),Sname nvarchar(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(C# varchar(10),Cname nvarchar(10),T# varchar(10))
insert into Course values('01' , '语文' , '02')
insert into Course values('02' , '数学' , '01')
insert into Course values('03' , '英语' , '03')
create table Teacher(T# varchar(10),Tname nvarchar(10))
insert into Teacher values('01' , '张三')
insert into Teacher values('02' , '李四')
insert into Teacher values('03' , '王五')
create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))
insert into SC values('01' , '01' , 80)
insert into SC values('01' , '02' , 90)
insert into SC values('01' , '03' , 99)
insert into SC values('02' , '01' , 70)
insert into SC values('02' , '02' , 60)
insert into SC values('02' , '03' , 80)
insert into SC values('03' , '01' , 80)
insert into SC values('03' , '02' , 80)
insert into SC values('03' , '03' , 80)
insert into SC values('04' , '01' , 50)
insert into SC values('04' , '02' , 30)
insert into SC values('04' , '03' , 20)
insert into SC values('05' , '01' , 76)
insert into SC values('05' , '02' , 87)
insert into SC values('06' , '01' , 31)
insert into SC values('06' , '03' , 34)
insert into SC values('07' , '02' , 89)
insert into SC values('07' , '03' , 98)
重点https://blog.csdn.net/yunqishequ1/article/details/78435314?utm_source=blogxgwz16
17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
18、及格率sum(case when 成绩>=60 then 1 else 0 end)
#18、查询各科成绩最高分、最低分和平均分:
#以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
#及格为>=60,中等为:70-80,优良为:80-90