MySQL单表查询练习笔记(选课)

本文通过具体案例介绍了如何使用SQL进行单表查询操作,包括条件筛选、分组聚合、排序等技巧,适用于初学者和有一定基础的开发者进行实践练习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表目录
mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| c                 |
| s                 |
| sc                |
+-------------------+
课程表 ——c

这里写图片描述

学生表——s

这里写图片描述

选课表——sc

这里写图片描述


SQL实现单表查询题
#查询计算机系学生的学号和姓名
select sno,sname from s where depa="计算机系";

#查询选修了课程的学生学号
select distinct sno from sc;

#查询选修“C01” 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列
select sno,grade from sc where cno='c01' order by grade desc,sno asc;

#查询每门课程的平均分
#按课程分组、并对每个课程的成绩求平均分
select cno,avg(grade) from sc group by cno;

#查询学校开设的课程总数
#查询课程号并不能重复,再求记录数
select  count(distinct cno) from sc;

#查询选修两门及两门以上课程的学生学号。(此题除了代码,执行结果,还请写出代码的执行过程。)
#1、根据学号分组
#2、学号分组完成后找到对应的课程记录数大于等于2的学号
select sno from sc group by sno having count(cno)>=2;

#查询年龄在20-22之间的男生的学号、姓名、系部
select sno,sname,depa from s where age between 20 and 22;

#查询选修“C01”课程的学生人数
select count(cno) from sc where cno='c01';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值