实验二 数据查询
一、实验目的
1. 掌握使用 SQL 的 SELECT 语句进行基本查询的方法。
2. 掌握使用 SELECT 语句进行条件查询的方法。
3. 掌握 SELECT 语句的 GROUP BY、ORDER BY 以及 UNION 子句的作用和使用方法。
4. 掌握嵌套查询的方法。
5. 掌握连接查询的操作方法
二、上机内容
1. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。
(1)在 student_info 表中,查询每个学生的学号、姓名、出生日期信息。
(2)查询 student_info 表学号为 0002 的学生的姓名和家庭住址。
(3)查询 student_info 表所有出生日期在 95 年以后的女同学的姓名和出生日期。
2. 使用 select 语句进行条件查询。
(1)在 grade 表中查询分数在 70-80 范围内的学生的学号、课程编号和成绩。
(2)在 grade 表中查询课程编号为 0002 的学生的平均成绩。
(3)在 grade 表中查询选修课程编号为 0003 的人数和该课程有成绩的人数。
(4)查询 student_info 的姓名和出生日期,查询结果按出生日期从大到小排序。
(5)查询所有姓名“张”的学生的学号和姓名。
3. 对 student_info 表,查询学生的学号、姓名、性别、出生日期及家庭住址,查询结果
先按照性别的由小到大排序,性别相同的再按学号由大到小排序。
4. 使用 GROUP BY 子句查询 grade 表中各个学生的平均成绩。
5. 使用 UNION 运算符针 student_info 表中姓“刘”的学生的学号、姓名与姓“张”的
学生的学号、姓名返回在一个表中。
6. 嵌套查询
(1)在 student_info 表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。
(2)使用 IN 子查询查找所修课程编号为 0002、0005 的学生学号、姓名、性别。
(3)使用 ANY 子查询查找学号为 0001 的学生的分数比 0002 号的学生的最低分数高
的课程编号和分数。
(4)使用 ALL 子查询查找学号为 0001 的学生的分数比学号为 0002 的学生的最高成绩
还要高的课程编号和分数。
7. 连接查询
(1)查询分数在 80-90 范围内的学生的学号、姓名、分数。
(2)使用 INNER JOIN 连接方式查询学习“数据库原理及应用”课程的学生学号、姓
名、分数。
(3)查询每个学生所选课程的最高成绩,要求列出学号、姓名、最高成绩。
(4)使用左外连接查询每个学生的总成绩,要求列出学号、姓名、总成绩,没有选修
课程的学生的总成绩为空。
(5)为 grade 表添加数据行:学号为 0004、课程编号为 0006、分数为 76。使用右外连
接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum 表中没
有的课程列值为空。