SQL综合查询下
SQL综合查询下
目录
- SQL综合查询下
- 18、查询所有人都选修了的课程号与课程名
- 题目
- 代码
- 题解
- 19、SQL查询:查询没有参加选课的学生。
- 题目
- 代码
- 20、SQL查询:统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数(grade不为NULL),最高分,最低分,平均分,按课程号排序。
- 题目
- 代码
- 题解
- 21、查询计算机系平均成绩高于70分的成绩信息。
- 题目
- 代码
- 22、查询同时选修了“数据库基础”和“计算机网络”两门课的学生的学号,姓名。
- 题目
- 代码
- not exists写法
- 23、SQL查询:查询选修了课程的学生的学号和姓名。
- 题目
- 代码
- 24、SQL查询:查询学生的选课情况,要求输出学号,姓名,课程门数,课程名列表(按课程名升序排列,用下划线\_分隔),按照学号升序排序。
- 题目
- 代码
- 题解
- 25、查询每个男生的选课门数(要求用嵌套查询实现)
- 题目
- 代码
- 26、SQL查询:查询没有同时选修“计算机导论”和“计算机网络”两门课的学生的学号,姓名
- 题目
- 代码
- 27、查询选修了学号为9521102同学选修的全部课程的学生学号和姓名
- 题目一
- 代码
- 题解
- 28、查询95级学生(学号前两位)的选课情况,输出学号、姓名、课程号、成绩(包括未选课的学生信息)
- 题目
- 代码
- 29、查询选课门数最多的学生的学号和姓名
- 题目
- 代码
- 题解
- 30、查询每个学生成绩最高的成绩信息
- 题目
- 代码
- 31、SQL查询:查询同时选修了c01,c02,c03课程学生,输出学号,姓名
- 题目
- 代码
- 题解
- 32、查询每门课程被选修的情况,输出课程号,课程名,被选修次数
- 题目
- 代码
- 33、查询每门课程被选修的情况(包括从未被选修过的课程)
- 题目
- 代码
- 34、查询选修了c03课程的学生学号和姓名
- 题目
- 代码
- 35、查询实验题-查询考试不及格的学生的学号(包括没有成绩的)
- 题目
- 代码

18、查询所有人都选修了的课程号与课程名
题目
有课程表,学生表,成绩表如下,查询所有人都选修了的课程号与课程名。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
# 查询所有人都选修了的课程号与课程名
select c.cno,c.cname from course c where not exists
(select s.sno from student s where not exists
(select a.cno from sc a where a.sno=s.sno and a.cno=c.cno))
题解
- 该语句中,使用了嵌套的子查询来查找所有人都选修了的课程。
- 首先,在外层查询中,从课程表中选择本门课程的编号和名称。
- 然后,在内层查询中,对于每个学生,我们检查是否存在没有修读该门课程的情况。
- 如果不存在这样的情况,则意味着所有学生都修读了该门课程,因此将该门课程包含在结果中。
19、SQL查询:查询没有参加选课的学生。
题目
#查询没有参加选课的学生,输出系名,学号,姓名,性别,按系名(升序),学号(升序)排序。
[注意:SQL表名请用小写]
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 绩 SMALLINT
代码
#查询没有参加选课的学生,输出系名,学号,姓名,性别,按系名(升序),学号(升序)排序。
select s.sdept ,s.sno ,s.sname,s.ssex
from student s
where s.sno not in (select distinct sno from sc )
order by s.sdept asc ,s.sno asc;
20、SQL查询:统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数(grade不为NULL),最高分,最低分,平均分,按课程号排序。
题目
#统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数(grade不为NULL),最高分,最低分,平均分(取整round函数),按课程号排序。
[注意:SQL表名请用小写]
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 成绩 SMALLINT
代码
#统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数(grade不为NULL),最高分,最低分,平均分(取整round函数),按课程号排序。
select c.cno,c.cname,count(sc.sno),max(sc.grade),min(sc.grade),round(avg(sc.grade)) from course c
join sc on c.cno=sc.cno
where sc.grade is not null
group by c.cno
order by c.cno;
题解
- 从课程表(course)和选课表(sc)中查询课程代号(cno),课程名(cname),成绩不为NULL的学生人数(count(sc.sno)),最高分(max(sc.grade)),最低分(min(sc.grade))和平均分(round(avg(sc.grade)))这些字段;
- 通过INNER JOIN关键字将课程表和选课表连接起来,连接条件为课程代号(cno)相等;
- 使用WHERE子句过滤掉成绩为NULL的记录,只统计有成绩的学生人数;
- 使用GROUP BY子句对每门课程进行分组,统计每门课程的选修人数及成绩相关指标;
- 使用ORDER BY子句按照课程代号(cno)升序排序。
21、查询计算机系平均成绩高于70分的成绩信息。
题目
有课程表,学生表,成绩表如下,查询计算机系平均成绩高于70分的学号,姓名、平均成绩,并按平均成绩降序排列。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
#查询计算机系平均成绩高于70分的成绩信息
SELECT sc.sno, s.sname, AVG(sc.grade)
FROM sc
JOIN student s ON sc.sno = s.sno
WHERE s.sdept = '计算机系'
GROUP BY sc.sno
HAVING AVG(sc.grade) > 70
ORDER BY AVG(sc.grade) DESC
22、查询同时选修了“数据库基础”和“计算机网络”两门课的学生的学号,姓名。
题目
代码
# 查询同时选修了“数据库基础”和“计算机网络”两门课的学生的学号,姓名。
select sno,sname
from student
where sno in
(select snofrom course,scwhere course.cno=sc.cno and cname='数据库基础'and sno in(select snofrom course,scwhere course.cno=sc.cno and cname='计算机网络'));
not exists写法
select sno,sname from student
where not exists(select * from course where cname in('数据库基础','计算机网络')
and not exists (select * from sc where sno=student.sno and cno=course.cno))
- 在主查询中,我们选择输出学生的学号和姓名,因此使用了
SELECT sno, sname
。 - 在
FROM
子句中,我们选择了student
表,表示我们要查询学生的信息。 - 在
WHERE
子句中,我们使用了一个子查询来筛选同时选修了“数据库基础”和“计算机网络”两门课程的学生。具体来说,子查询中的第一个NOT EXISTS
子句用于筛选选修了至少一门不是这两门课程的学生,第二个NOT EXISTS
子句用于筛选未选修这两门课程的学生。通过使用两个NOT EXISTS
子句的嵌套,我们筛选出了选修了这两门课程的学生。 - 在子查询中,我们使用了
SELECT * FROM course WHERE cname IN ('数据库基础', '计算机网络')
来选择选修了这两门课程的课程记录。然后,我们使用NOT EXISTS
子句来筛选未选修这些课程的学生。具体来说,NOT EXISTS
子句中的子查询SELECT * FROM sc WHERE sno = student.sno AND cno = course.cno
用于查找学生选课表中是否存在选修了这些课程的记录。如果不存在这样的记录,那么学生就未选修这些课程。
📌如果对not exists用法不熟悉 建议用两次子查询
23、SQL查询:查询选修了课程的学生的学号和姓名。
题目
#查询选修了课程的学生的学号和姓名,按学号排序。
[注意:SQL表名请用小写]
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 成绩 SMALLINT
代码
#查询选修了课程的学生的学号和姓名,按学号排序。
select distinct s.sno,s.sname from student s,sc
where s.sno = sc.sno
order by s.sno;
24、SQL查询:查询学生的选课情况,要求输出学号,姓名,课程门数,课程名列表(按课程名升序排列,用下划线_分隔),按照学号升序排序。
题目
#查询学生的选课情况,要求输出学号,姓名,课程门数,课程名列表(按课程名升序排列,用下划线_分隔),按照学号升序排序。
[注意:SQL表名请用小写]
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 成绩 SMALLINT
代码
#查询学生的选课情况,要求输出学号,姓名,课程门数,课程名列表(按课程名升序排列,用下划线_分隔),按照学号升序排序。
SELECT s.sno,sname,COUNT(*),
GROUP_CONCAT(cname ORDER BY cname SEPARATOR '_')'课程名列表'
FROM student s,sc,course cs
WHERE s.sno=sc.sno AND sc.cno=cs.cno
GROUP BY s.sno
ORDER BY s.sno;
题解
- 从学生表(student)、选课表(sc)和课程表(course)中查询学号(sno)、姓名(sname)、课程数量(COUNT( *))和课程名列表(GROUP_CONCAT())这些字段;
- 使用WHERE子句将学生表、选课表和课程表连接起来,连接条件为学号(sno)和课程号(cno)相等;
- 使用
GROUP BY
子句对每个学生进行分组,统计每个学生所选课程的数量和课程名列表; - 使用
GROUP_CONCAT
函数将每个学生所选课程的课程名按照字母表顺序排序并用下划线连接起来,形成课程名列表; - 使用ORDER BY子句按照学号(sno)升序排序。
25、查询每个男生的选课门数(要求用嵌套查询实现)
题目
#查询每个男生的选课门数(要求用嵌套查询实现)要求输出学号、选课门数,并按序号升序排序。
[注意:SQL表名请用小写]
代码
#查询每个男生的选课门数(要求用嵌套查询实现)要求输出学号、选课门数,并按学号升序排序。
select sc.sno,count(*)
from sc
where sno in(select sno from student where ssex='男')
group by sno;
26、SQL查询:查询没有同时选修“计算机导论”和“计算机网络”两门课的学生的学号,姓名
题目
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 成绩 SMALLINT
代码
select sno,sname from student where sno not in(
select sno from sc,course where sc.cno=course.cno and cname='计算机导论'
and sno in (
select sno from sc,course where sc.cno=course.cno and cname='计算机网络'
));
27、查询选修了学号为9521102同学选修的全部课程的学生学号和姓名
题目一
有课程表,学生表,成绩表如下,查询选修了学号为9521102同学选修的全部课程的学生学号和姓名。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
# 查询选修了学号为9521102同学选修的全部课程的学生学号和姓名
SELECT DISTINCT s.sno, s.sname
FROM student s
WHERE NOT EXISTS (SELECT *FROM sc bWHERE b.sno = '9521102' AND NOT EXISTS (SELECT *FROM sc cWHERE s.sno = c.sno AND c.cno = b.cno)
);
题解
- 首先,我们使用
SELECT DISTINCT
关键字指定要查询的结果集中的每个记录都是唯一的,即去除重复记录。 - 接下来,我们使用FROM子句指定要查询的表是学生表(student),使用别名s来代替学生表(student)。
- 然后,我们使用WHERE子句对查询结果进行筛选。在这个查询中,我们使用了
NOT EXISTS
子查询,表示查找不存在满足特定条件的记录。 - 在
NOT EXISTS
子查询中,我们使用了一个子子查询,其中先查询出学号为9521102的学生选修的全部课程,然后再查询出除该学生外,选修了这些全部课程的学生。如果存在这样的学生,则该学生不符合条件,被排除在查询结果之外。 - 最后,我们使用SELECT子句指定要查询的结果集包括每个学生的学号(sno)和姓名(sname)。这些字段分别来自于学生表(student)。
28、查询95级学生(学号前两位)的选课情况,输出学号、姓名、课程号、成绩(包括未选课的学生信息)
题目
查询95级学生(学号前两位)的选课情况,输出学号、姓名、课程号、成绩(包括未选课的学生信息)。
有课程表,学生表,成绩表如下,请完成查询。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
# 查询95级学生(学号前两位)的选课情况,输出学号、姓名、课程号、成绩(包括未选课的学生信息)。
select s.sno,s.sname,sc.cno,sc.grade
from student s
left join sc on sc.sno = s.sno
where s.sno like '95%';
29、查询选课门数最多的学生的学号和姓名
题目
有课程表,学生表,成绩表如下,查询选课门数最多的学生的学号和姓名,结果可能不只一行。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
#查询选课门数最多的学生的学号和姓名
select s.sno,s.sname from student s,sc
where s.sno=sc.sno
group by s.sno
having count(*) = (select count(*) from sc group by sno order by count(*) desc limit 1);
题解
- 首先,使用SELECT关键字指定要查询的结果集包含学生的学号(sno)和姓名(sname)字段。
- 接着,使用FROM子句指定要查询的表包括学生表(student)和选课表(sc)。
- 然后,使用WHERE子句指定学生表(student)和选课表(sc)之间的连接条件为学号(sno)相等。
- 接下来,使用GROUP BY子句按照学生的学号(sno)进行分组,统计每个学生选修的课程数量。
- 然后,使用HAVING子句过滤掉选修课程数量不是最多的学生记录。在这个查询中,我们使用COUNT( *)函数统计每个学生选修的课程数量,然后将这个数量与所有学生选修课程数量的最大值进行比较,如果相等,则表示该学生选修课程数量最多,满足条件。
- 最后,使用子查询获取所有学生的选修课程数量,按照数量从大到小排序,并只返回数量最大的那个值,作为判断条件。
30、查询每个学生成绩最高的成绩信息
题目
有课程表,学生表,成绩表如下,请完成查询,输出成绩信息学号、课程号及成绩,最高分可能有多门成绩。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 |
代码
# 输出成绩信息学号、课程号及成绩,最高分可能有多门成绩。
select * from sc student
where grade=(select max(grade) from sc where sc.sno=student.sno);
31、SQL查询:查询同时选修了c01,c02,c03课程学生,输出学号,姓名
题目
#查询同时选修了c01,c02,c03课程学生,输出学号,姓名
代码
#查询同时选修了c01,c02,c03课程学生,输出学号,姓名
select sno,sname from student
where not exists (select * from course where cno in ('c01','c02','c03') #筛选出选修了这几门课程中任意一门或多门的学生记录
and not exists (select * from sc where sno=student.sno and cno=course.cno))
题解
- 首先,使用SELECT关键字指定要查询的结果集包含学生的学号(sno)和姓名(sname)字段。
- 接着,使用FROM子句指定要查询的表为学生表(student)。
- 然后,使用WHERE子句对查询结果进行筛选。在这个查询中,我们使用了NOT EXISTS子查询,表示查找不存在满足特定条件的记录。
- 在NOT EXISTS子查询中,我们使用了一个子子查询,其中先查询出所有指定课程(c01、c02和c03),然后再查询出选修了这些课程的学生。如果存在这样的学生,则该学生符合条件,被包含在查询结果之中。
- 在子子查询中,我们使用了另一个子查询,查询选修了指定课程的学生和课程的关系表(sc)。如果存在这样的关系记录,则表示该学生选修了指定的课程。
- 最后,使用sno = student.sno和cno = course.cno这两个条件将学生表(student)和课程表(course)之间的关系进行连接。
32、查询每门课程被选修的情况,输出课程号,课程名,被选修次数
题目
查询每门课程被选修的情况,输出课程号,课程名,被选修次数,结果按选修次数降序课程号降序排列。
其中课程表course结构为
选修表sc结构为
代码
#查询每门课程被选修的情况,输出课程号,课程名,被选修次数,结果按选修次数降序课程号降序排列。
select c.cno, c.cname, count(*)
from course c ,sc
where c.cno = sc.cno
group by c.cno
ORDER BY count(*) DESC, c.cno DESC;
33、查询每门课程被选修的情况(包括从未被选修过的课程)
题目
查询每门课程被选修的情况(包括从未被选修过的课程),输出课程号,课程名,被选修次数,结果按选修次数升序课程号升序排列。
其中课程表course结构为
选修表sc结构为
代码
# 查询每门课程被选修的情况(包括从未被选修过的课程)
select course.cno,cname,count(sno)
from course
left join sc on course.cno=sc.cno
group by course.cno
order by count(sno) asc ,course.cno asc
34、查询选修了c03课程的学生学号和姓名
题目
有课程表,学生表,成绩表如下,查询选修了c03课程的学生学号和姓名。
course
列名 | 数据类型 | 约束 | 说明 |
cno | char(4) | 主键非空 | 课程号 |
cname | varchar(40) | 非空 | 课程名 |
cpno | char(4) | 参照course(cno) | 先修课 |
ccredit | tinyint | 学分 |
student
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空 | 学号 |
sname | char(10) | 非空 | 学生姓名 |
ssex | enum(‘男’,‘女’) | 默认‘男’ | 性别 |
sage | tinyint | 年龄 | |
sdept | char(20) | 默认’计算机系’ | 系别 |
sc
列名 | 数据类型 | 约束 | 说明 |
sno | char(7) | 主键非空,参照student(sno) | 学号 |
cno | char(4) | 主键非空,参照course(cno) | 课程号 |
grade | decimal(5,1) | 成绩 | |
ccredit | tinyint |
代码
# 查询选修了c03课程的学生学号和姓名
select s.sno,s.sname from student s,sc
where sc.sno = s.sno
and cno = 'c03';
35、查询实验题-查询考试不及格的学生的学号(包括没有成绩的)
题目
查询考试不及格的学生的学号(包括没有成绩的)。选课表(sc)表结构如下:
代码
# 查询考试不及格的学生的学号(包括没有成绩的)
select distinct sno from sc
where grade < 60 or grade is null;
# 别忘了学号的去重
相关文章:

SQL综合查询下
SQL综合查询下 目录SQL综合查询下18、查询所有人都选修了的课程号与课程名题目代码题解19、SQL查询:查询没有参加选课的学生。题目代码20、SQL查询:统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数ÿ…...
全连接层FC
lenet结构: 输入层(Input Layer):接收手写数字的图像数据,通常是28x28的灰度图像。 卷积层1(Convolutional Layer 1):对输入图像进行卷积操作,提取低级别的特征,使用 6 个大小为 5x5 的卷积核进行卷积,得到 6 个输出特征图,激活函数为 Sigmoid。 平均池化层1(Aver…...
图的遍历及连通性
文章目录 图的遍历及连通性程序设计程序分析图的遍历及连通性 【问题描述】 根据输入的图的邻接矩阵A,判断此图的连通分量的个数。 【输入形式】 第一行为图的结点个数n,之后的n行为邻接矩阵的内容,每行n个数表示。其中A[i][j]=1表示两个结点邻接,而A[i][j]=0表示两个结点无…...

DJ3-4 实时调度
目录 3.4.1 实现实时调度的基本条件 1. 提供必要的信息 2. 系统的处理能力强 3. 采用抢占式调度机制 4. 具有快速切换机制 3.4.2 实时调度算法的分类 1. 非抢占式调度算法 2. 抢占式调度算法 3.4.3 常用的几种实时调度算法 1. 最早截止时间优先 EDF(Ea…...
Oracle之PL/SQL游标练习题(三)
游标练习题目1、定义游标:列出每个员工的姓名部门名称并编程显示第10个到第20个记录2、定义游标:从雇员表中显示工资大于3000的记录,只要姓名、部门编号和工资,编程显示其中的奇数记录3、用游标显示所有部门编号与名称,…...

docker运行服务端性能监控系统Prometheus和数据分析系统Grafana
文章目录一、Prometheus的安装和运行1、使用docker拉取镜像2、创建prometheus.yml文件3、启动容器4、查看启动是否成功5、记录安装过程中出现的错误二、Grafana的安装和运行1、使用docker拉取镜像2、创建grafana3、运行grafana4、查看grafana运行日志5、登录grafana一、Prometh…...
【Linux】【应用层】多线程编程
一、线程创建 Linux 中的 pthread_create() 函数用来创建线程,它声明在<pthread.h>头文件中,语法格式如下: int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine) (void *),void *arg);各个参数…...
GameFramework 框架详解之 如何接入热更框架HybridCLR
一.前言 HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的c#热更新方案 GameFramework是一个非常出色完整的基于Unity引擎的游戏框架,里面包含了非常多的模块,封装非常完整。 以前市面上的热更大多数都是Lua为主,后来出了一个ILRuntime的C#热更框架,虽然性能…...

全国青少年软件编程(Scratch)等级考试二级考试真题2023年3月——持续更新.....
一、单选题(共25题,共50分) 1. 小猫的程序如图所示,积木块的颜色与球的颜色一致。点击绿旗执行程序后,下列说法正确的是?( ) A.小猫一直在左右移动,嘴里一直说着“抓到了”。 B.小猫会碰到球,然后停止。 C.小猫一直在左右移动,嘴里一直说着“别跑” D.小猫会碰到球,…...

HTML2.1列表标签
列表标签种类 无序列表 有序列表 自定义列表 使用场景:在列表中按照行展示关联性内容。 特点:按照行的形式,整齐显示内容。 一、无序列表 标签名说明ul无序列表整体,用于包裹li标签li表示无序列表的每一项,用于包…...

在 Flutter 多人视频通话中实现虚拟背景、美颜与空间音效
前言 在之前的「基于声网 Flutter SDK 实现多人视频通话」里,我们通过 Flutter 声网 SDK 完美实现了跨平台和多人视频通话的效果,那么本篇我们将在之前例子的基础上进阶介绍一些常用的特效功能,包括虚拟背景、色彩增强、空间音频、基础变声…...
Ambari-web 架构
Ambari-web 使用的前端 Embar.js MVC 框架实现,Embar.js 是一个 TodoMVC 框架,涵盖了单页面应用(single page application)几乎所有的行为 Nodejs 是一个基于 Chrome JavaScript 运行时建立的一个平台,用来方便的搭建…...
对接百思买Best Buy EDI 的注意事项
在此前的文章:《Best Buy Drop Ship(Commerce hub) EDI业务测试常见报错及解决》中,我们介绍了在业务测试过程中遇到的常见报错及解决方案,以下在此基础上进行补充。 数据未能成功发送给Best Buy可能遇到的情况 Best Buy EDI项目传输业务报…...

2023年郑州重点建设项目名单公布,中创“算力数据中心”项目入选!
4月7日,郑州市人民政府网站公布2023年郑州市重点建设项目名单,名单共列项目680个,总投资1.08万亿元,年度计划投资2691亿元。 在创新驱动能力提升项目名单里,中创算力与人民网人民数据(国家大数据灾备中心&a…...
Pytorch 容器 - 1. Module类介绍
目录 1. 基于Module构建自己的网络 2. Module的初始化变量 3. Modules中需要子类 forward() 4. Modules中其他内置函数 1. 基于Module构建自己的网络 torch.nn.Module是所有神经网络模块的基类,如何定义自已的网络: 由于 Module 是神经网络模块的基…...
百度墨卡托坐标转化笔记
一、墨卡托坐标转化 调研了python和java多种实现方式的转换,发现有的不符合需求,原因还没找到。 我是用百度地图返回的poi边界(返回的是墨卡托坐标) 转换的原理没有深入研究,直接拿来用的,测试可行&…...

每日学术速递4.12
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.HC 随着新的“生成代理”论文的发布,LLM刚刚达到了一个重要的里程碑——通过使用 LLM,生成代理能够在受《模拟人生》启发的交互式沙箱中模拟类人行为。代理架构扩展…...
HarmonyOS/OpenHarmony公司级技术开发团队硬件基本配置清单
有朋友公司咨询进入HarmonyOS/OpenHarmony领域,组建技术团队,硬件设备的基本配置应该是怎么样的比较合适?这个是进入鸿蒙开发领域相关配置的第一步,我们以一个基本的团队配置为例说明,供想进入的团队参考。 HarmonyOS/…...

新一代信息技术赋能,安科瑞搭建智慧水务体系的新思路
随着新时期治水方针的逐步落实,水利现代化、智能化建设已开启,物联网、图像识别、数字孪生等新技术的成熟,也为智慧水务体系的搭建提供了技术保障,新时代治水新思路正逐步得到落实。本文对智慧水务的总体架构与包含的建设内容进行…...

37岁测试工程师被裁,120天没找到工作,无奈...
从短期来看,程序员的确算是个不错的工作,薪水也比一般岗位高很多,但是从长远来看,程序员的中年危机会比其他岗位来的更早,很多程序员只有到了35岁左右,才能真正认清楚互联网行业,尤其是被裁之后…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...