# day27 SQL强化和实践

image-20210531085557128

课程目标:练习常见的SQL语句和表结构的设计。

课程概要:

  • SQL强化
  • 表结构设计(博客系统)

# 1. SQL强化

image-20210531123055185

  1. 根据上图创建 数据库 & 表结构 并 录入数据(可以自行创造数据)。
  2. 创建用户 luffy 并赋予此数据库的所有权限。
  3. 查询姓“李”的老师的个数。
  4. 查询姓“张”的学生名单。
  5. 查询男生、女生的人数。
  6. 查询同名同姓学生名单,并统计同名人数。
  7. 查询 “三年二班” 的所有学生。
  8. 查询 每个 班级的 班级名称、班级人数。
  9. 查询成绩小于60分的同学的学号、姓名、成绩、课程名称。
  10. 查询选修了 “生物课” 的所有学生ID、学生姓名、成绩。
  11. 查询选修了 “生物课” 且分数低于60的的所有学生ID、学生姓名、成绩。
  12. 查询所有同学的学号、姓名、选课数、总成绩。
  13. 查询各科被选修的学生数。
  14. 查询各科成绩的总分、最高分、最低分,显示:课程ID、课程名称、总分、最高分、最低分。
  15. 查询各科成绩的平均分,显示:课程ID、课程名称、平均分。
  16. 查询各科成绩的平均分,显示:课程ID、课程名称、平均分(按平均分从大到小排序)。
  17. 查询各科成绩的平均分和及格率,显示:课程ID、课程名称、平均分、及格率。
  18. 查询平均成绩大于60的所有学生的学号、平均成绩;。
  19. 查询平均成绩大于85的所有学生的学号、平均成绩、姓名。
  20. 查询 “三年二班” 每个学生的 学号、姓名、总成绩、平均成绩。
  21. 查询各个班级的班级名称、总成绩、平均成绩、及格率(按平均成绩从大到小排序)。
  22. 查询学过 “波多” 老师课的同学的学号、姓名。
  23. 查询没学过 “波多” 老师课的同学的学号、姓名。
  24. 查询选修 “苍空” 老师所授课程的学生中,成绩最高的学生姓名及其成绩(不考虑并列)。
  25. 查询选修 “苍空” 老师所授课程的学生中,成绩最高的学生姓名及其成绩(考虑并列)。
  26. 查询只选修了一门课程的全部学生的学号、姓名。
  27. 查询至少选修两门课程的学生学号、学生姓名、选修课程数量。
  28. 查询两门及以上不及格的同学的学号、学生姓名、选修课程数量。
  29. 查询选修了所有课程的学生的学号、姓名。
  30. 查询未选修所有课程的学生的学号、姓名。
  31. 查询所有学生都选修了的课程的课程号、课程名。
  32. 查询选修 “生物” 和 “物理” 课程的所有学生学号、姓名。
  33. 查询至少有一门课与学号为“1”的学生所选的课程相同的其他学生学号 和 姓名 。
  34. 查询与学号为 “2” 的同学选修的课程完全相同的其他 学生学号 和 姓名 。
  35. 查询“生物”课程比“物理”课程成绩高的所有学生的学号;
  36. 查询每门课程成绩最好的前3名 (不考虑成绩并列情况) 。
  37. 查询每门课程成绩最好的前3名 (考虑成绩并列情况) 。
  38. 创建一个表 sc,然后将 score 表中所有数据插入到 sc 表中。
  39. 向 sc 表中插入一些记录,这些记录要求符合以下条件:
    • 学生ID为:没上过课程ID为 “2” 课程的学生的 学号;
    • 课程ID为:2
    • 成绩为:80
  40. 向 sc 表中插入一些记录,这些记录要求符合以下条件:
    • 学生ID为:没上过课程ID为 “2” 课程的学生的 学号。
    • 课程ID为:2。
    • 成绩为:课程ID为3的最高分。

# 2. 设计表结构

根据如下的业务需求设计相应的表结构,内部需涵盖如下功能。

  • 注册
  • 登录
  • 发布博客
  • 查看博客列表,显示博客标题、创建时间、阅读数量、评论数量、赞数量等。
  • 博客详细,显示博文详细、评论 等。
    • 发表评论
    • 赞 or 踩
    • 阅读数量 + 1

参考如下图片请根据如下功能来设计相应的表结构。

注意:只需要设计表结构,不需要用python代码实现具体的功能(再学一点知识点后再更好的去实现)。

# 2.1 注册和登录

image-20210520204812764

# 2.2 文章列表

image-20210520204735867

# 2.3 文章详细

image-20210520205148509

# 2.4 评论 & 阅读 & 赞 & 踩

image-20210520205332907

注意:假设都是一级评论(不能回复评论)。

上次更新: 6/10/2021, 5:58:03 PM