Mysql作业日志(2)进阶练习

这篇博客是一系列关于MySQL的进阶练习,涉及多个复杂的查询场景,如课程成绩对比、平均成绩筛选、学生选课情况分析、教师与学生关联查询、成绩排名、分数段统计等。每个题目都提供了思路分析,帮助读者提升SQL操作技能。
摘要由CSDN通过智能技术生成

Mysql作业日志(2)进阶练习

注意!!!!! 在进行sql语句的输入的时候,一定要注意大小写啊!
在这里插入图片描述
像我这有两个student表,就很容易造成混淆
同时 本文中标注的(?)表明当时没有任何思路
(难)则表示要重点去看 去思考

数据库内容如下:

–1.学生表
Student(SId,Sname,Sage,Ssex)
–SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
–2.课程表
Course(CId,Cname,TId)
–CId 课程编号,Cname 课程名称,TId 教师编号
–3.教师表
Teacher(TId,Tname)
–TId 教师编号,Tname 教师姓名
–4.成绩表
SC(SId,CId,score)
–SId 学生编号,CId 课程编号,score 分数

学生表 Student
create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10));
insert into Student values(‘01’ , ‘赵雷’ , ‘1990-01-01’ , ‘男’);
insert into Student values(‘02’ , ‘钱电’ , ‘1990-12-21’ , ‘男’);
insert into Student values(‘03’ , ‘孙风’ , ‘1990-12-20’ , ‘男’);
insert into Student values(‘04’ , ‘李云’ , ‘1990-12-06’ , ‘男’);
insert into Student values(‘05’ , ‘周梅’ , ‘1991-12-01’ , ‘女’);
insert into Student values(‘06’ , ‘吴兰’ , ‘1992-01-01’ , ‘女’);
insert into Student values(‘07’ , ‘郑竹’ , ‘1989-01-01’ , ‘女’);
insert into Student values(‘09’ , ‘张三’ , ‘2017-12-20’ , ‘女’);
insert into Student values(‘10’ , ‘李四’ , ‘2017-12-25’ , ‘女’);
insert into Student values(‘11’ , ‘李四’ , ‘2012-06-06’ , ‘女’);
insert into Student values(‘12’ , ‘赵六’ , ‘2013-06-13’ , ‘女’);
insert into Student values(‘13’ , ‘孙七’ , ‘2014-06-01’ , ‘女’);
科目表 Course
create table Course(CId varchar(10),Cname nvarchar(10),TId varchar(10));
insert into Course values(‘01’ , ‘语文’ , ‘02’);
insert into Course values(‘02’ , ‘数学’ , ‘01’);
insert into Course values(‘03’ , ‘英语’ , ‘03’);
教师表 Teacher
create table Teacher(TId varchar(10),Tname varchar(10));
insert into Teacher values(‘01’ , ‘张三’);
insert into Teacher values(‘02’ , ‘李四’);
insert into Teacher values(‘03’ , ‘王五’);
成绩表 SC
create table SC(SId varchar(10),CId 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);

表情况如下:

Student:
在这里插入图片描述
Teacher:
在这里插入图片描述
Sc:
在这里插入图片描述
Course:
在这里插入图片描述

题目如下:

1.查询" 01 “课程比” 02 "课程成绩高的学生的信息课程分数

select * from
(select SC.SId, SC.score from SC where SC.CId = '01') as t1 inner join
(select SC.SId, SC.score from SC where SC.CId = '02') as t2 on t1.SId = t2.SId
where t1.score > t2.score
# inner join  on 内连接 组合两个表中的记录,要求他们有相同的数据类型

在这里插入图片描述

1.1查询同时存在" 01 “课程和” 02 "课程的情况

select * from
(select SC.SId, SC.score from SC where SC.CId = '01') as t1 inner join
(select SC.SId, SC.score from SC where SC.CId = '02') as t2 on t1.SId = t2.SId

在这里插入图片描述

1.2 查询存在" 01 “课程但可能不存在” 02 "课程的情况(不存在时显示为 null )

select * from
(select SC.SId, SC.score from SC whe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值