数据库实验报告(20211007035151).pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
这篇实验报告围绕的是数据库操作,特别是SQL查询语句的应用,主要在"教学管理"数据库jxgl上进行。以下是对各个查询的详细解释: 1. 查询年龄大于23岁的男学生的学号和姓名: 使用了`SELECT Sno, Sname`从`Student`表中选取Sno(学号)和Sname(姓名),`WHERE`子句过滤出Ssex(性别)为'男'且Sage(年龄)大于23的记录。 2. 查询至少选修一门课程的女生姓名: `SELECT Sname`从`Student`表中选取Sname,`WHERE`子句筛选Ssex为'女'的记录,并通过`Sno IN`子句判断该学生在`SC`表中有记录,即至少选修了一门课程。 3. 查询王同学未选修的课程号: 使用`SELECT Cno`从`Course`表中选取Cno,`WHERE`子句排除了在`Student`和`SC`表中Sname以'王'开头的学生的课程号。 4. 查询至少选修两门课程的学生学号: `SELECT DISTINCT Sno`从`SC`表中选取不同Sno,`GROUP BY`按Sno分组,`HAVING`子句过滤出每个学生选修课程数量大于等于2的情况。 5. 查询所有学生都选修的课程号与课程名: `SELECT Cno, Cname`从`Course`表中选取Cno和Cname,`WHERE`子句通过`NOT EXISTS`确保没有学生未选修这些课程。 6. 查询选修了所有3学分课程的学生学号: `SELECT DISTINCT Sno`从`SC`表中选取不同Sno,`WHERE`子句通过`NOT EXISTS`确保每个学生都选修了所有3学分的课程。 7. 统计有学生选修的课程门数: `SELECT COUNT(DISTINCT Cno)`从`SC`表中计算不同Cno的数量,即课程门数。 8. 求选修4号课程的学生平均年龄: `SELECT AVG(Sage)`计算`Student`表中Sno与`SC`表中Sno匹配且Cno为4的记录的平均年龄。 9. 求学分为3的每门课程的学生平均成绩: `SELECT AVG(Grade)`从`Course`和`SC`表中选取学分为3的课程的平均成绩,`GROUP BY`按照Cno分组。 10. 统计每门课程的学生选修人数,只统计超过3人的课程: `SELECT Cno, COUNT(Sno)`从`SC`表中计算每门课程的选修人数,`HAVING`子句过滤出选修人数大于3的课程,`ORDER BY`按人数降序、课程号升序排列。 11. 检索学号比“王菲”大而年龄比她小的学生姓名: 使用子查询找到王菲的学号和年龄,然后在`Student`表中筛选出学号更大但年龄更小的学生。 12. 检索姓名以“王”打头的所有学生的姓名和年龄: `SELECT Sname, Sage`从`Student`表中选取Sname以'王'开头的记录。 13. 在`SC`中检索成绩为空的学生学号和课程号: `SELECT Sno, Cno`从`SC`表中选取Grade为空的记录。 14. 求年龄大于女同学平均年龄的男学生姓名和年龄: `SELECT Sname, Sage`从`Student`表中选取Ssex为'男'且年龄大于所有女性平均年龄的学生。 15. 求年龄大于所有女同学年龄的男同学姓名和年龄: 类似于上一题,但要求年龄大于所有女同学的最大年龄。 16. 检索所有比“王华”年龄大的学生姓名、年龄和性别: `SELECT Sname, Sage, Ssex`从`Student`表中选取年龄大于王华的学生记录。 以上是对数据库实验报告中涉及的SQL查询语句的详细解析,涵盖了多表查询、聚合函数、子查询、连接查询等核心概念,展示了SQL在数据库查询中的强大功能。
- 粉丝: 14
- 资源: 9万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助