前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >一个数据库题目理解所有的sql语句

一个数据库题目理解所有的sql语句

作者头像
GeekLiHua
发布2025-01-21 15:20:09
发布2025-01-21 15:20:09
6700
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

一个数据库题目理解所有的sql语句

数据库表

学生表 (students)

id

name

age

1

张三

20

2

李四

21

3

王五

22

课程表 (courses)

id

name

credit

1

数学

3

2

英语

4

3

物理

3

成绩表 (scores)

student_id

course_id

score

1

1

85

1

2

78

2

1

92

2

2

85

2

3

89

3

2

90

3

3

75

sql题目

  1. 从学生表中选择所有学生的姓名和年龄。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT name, age FROM students;
  1. 从课程表中选择所有课程的名称和学分。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT name, credit FROM courses;
  1. 从成绩表中选择所有学生的姓名、课程名称和分数。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT s.name AS student_name, c.name AS course_name, sc.score
FROM students s
JOIN scores sc ON s.id = sc.student_id
JOIN courses c ON sc.course_id = c.id;
  1. 计算每个学生的平均成绩。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT student_id, AVG(score) AS avg_score
FROM scores
GROUP BY student_id;
  1. 找出选修了所有课程的学生姓名。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT s.name AS student_name
FROM students s
WHERE NOT EXISTS (
    SELECT *
    FROM courses
    WHERE NOT EXISTS (
        SELECT *
        FROM scores
        WHERE scores.student_id = s.id AND scores.course_id = courses.id
    )
);
  1. 找出没有选修任何课程的学生姓名。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT s.name AS student_name
FROM students s
LEFT JOIN scores sc ON s.id = sc.student_id
WHERE sc.student_id IS NULL;
  1. 计算每门课程的平均分数。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT course_id, AVG(score) AS avg_score
FROM scores
GROUP BY course_id;
  1. 找出每个老师教授的课程数量。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT t.name AS teacher_name, COUNT(c.id) AS course_count
FROM teachers t
JOIN courses c ON t.id = c.teacher_id
GROUP BY t.name;
  1. 找出选修了课程编号为1和2的学生姓名。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT s.name AS student_name
FROM students s
JOIN scores sc ON s.id = sc.student_id
WHERE sc.course_id IN (1, 2)
GROUP BY s.name
HAVING COUNT(DISTINCT sc.course_id) = 2;
  1. 计算每个学生选修的课程数量。
代码语言:javascript
代码运行次数:0
运行
复制
SELECT student_id, COUNT(course_id) AS course_count
FROM scores
GROUP BY student_id;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个数据库题目理解所有的sql语句
    • 数据库表
    • sql题目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档