SQL数据库查询练习题:学生信息、成绩、课程及选课

1. 查询三次作业的成绩都在80分以上的学号、课程号。

SELECT 学号, 课程号
FROM 成绩
WHERE 作业1成绩 >= 80 AND 作业2成绩 >= 80 AND 作业3成绩 >= 80;

2. 查询姓张的学生的学号、姓名和专业班级。

SELECT 学号, 姓名, 专业班级
FROM 学生
WHERE 姓名 LIKE '张%';

3. 查询05级的男生信息。

SELECT *
FROM 学生
WHERE 入学年份 = '05' AND 性别 = '男';

4. 查询没有作业成绩的学号和课程号。

SELECT 学号, 课程号
FROM 成绩
WHERE 作业1成绩 IS NULL AND 作业2成绩 IS NULL AND 作业3成绩 IS NULL;

5. 查询学号为0538的学生的作业1总分。

SELECT 作业1总分
FROM 成绩
WHERE 学号 = '0538';

6. 查询选修了K001课程的学生人数。

SELECT COUNT(DISTINCT 学号)
FROM 成绩
WHERE 课程号 = 'K001';

7. 查询数据库中共有多少个班级。

SELECT COUNT(DISTINCT 专业班级)
FROM 学生;

8. 查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

SELECT 学号, AVG(作业1成绩), AVG(作业2成绩), AVG(作业3成绩)
FROM 成绩
GROUP BY 学号
HAVING COUNT(CASE WHEN 作业1成绩 IS NOT NULL THEN 1 END) + COUNT(CASE WHEN 作业2成绩 IS NOT NULL THEN 1 END) + COUNT(CASE WHEN 作业3成绩 IS NOT NULL THEN 1 END) >= 3;

9. 查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

使用 INNER JOIN:

SELECT 学生.学号, 学生.姓名, 课程.课程名
FROM 学生
INNER JOIN 选课 ON 学生.学号 = 选课.学号
INNER JOIN 课程 ON 选课.课程号 = 课程.课程号
WHERE 学生.姓名 = '于兰兰';

使用子查询:

SELECT 学号, 姓名, (SELECT 课程名 FROM 课程 WHERE 课程号 = 选课.课程号) AS 课程名
FROM 学生, 选课
WHERE 学生.学号 = 选课.学号 AND 学生.姓名 = '于兰兰';
SQL数据库查询练习题:学生信息、成绩、课程及选课

原文地址: https://www.cveoy.top/t/topic/nVoe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录