一、实验 1 认识 DBMS
1 实验题目
1. 数据库单表查询
2. 数据库多表连接查询
2 实验要求
首先第一步:
(1)选择要查询的数据库,右击(新建查询】,或者选择系统菜单中的
【文件】一【新建】一【使用当前连接查询】命令,或者单击标准工具栏中的
【新建查询】按钮,即可新建一个查询窗口。如果查询数据库不是
StuCouYYXXXX,则可在可用数据库下拉列表中进行选择,或用 USE 语句调用。
(2)在查询窗口中输入 SELECT 查询语句,对 StuCouYYXXXX 数据库进行查
询操作。
(3)查询计算机系全体学生的信息(包括学号、姓名、性别、出生日期、所
在系、备注)
查询姓“李”的学生的学号和姓名。
查询课程表中没有先行课的课程名。
查询考试成绩有不及格的学生的学号。
(4)查询选修了 CO1 课程或 C02 课程的学生的学号及成绩。
(5)查询全体计算机系学公的姓名及其年龄。
(6)查询计算机系在 1999-2000 年之间出生的学生的姓名。
(7)查询姓“李”的学生中姓名按字典顺序排列的前两个学生的学号和姓
名。
(8)查询选修了两门以上课程的学生学号与课程数。
(9)查询选修课程数大于等于 2 的学生的学号、平均成绩和选课门数,并按
平均成绩降序排列。
第二步:
新建查询窗口,选择 StuCouYYXXXX 为当前数据库,输入如下 SELECT 查询语
句并执行,对数据库进行多表连接查询操作。
(1)查询选修了【数据库原理】的计算机系的学生学号和姓名。
(2)查询每一门课的间接先行课,显示该门课程的课程编号和间接先行课
的课程编号(即先行课的先行课)(有间接先行课才算)。
(3)查询学生的学号、姓名、选修课程的名称和成绩。
(4)查询选修了课程的学生姓名。
(5)查询所有学生的信息(包括学号、姓名、性别、出生日期、所在系、
备注)和他们的所选修课程的课程编号。
(6)查询所有课程的名字以及课程被选修的情况(显示信息包括,课程
名、学号、课程编号、成绩)。
(7)列出学生所有可能的选修情况(包括学号、姓名、课程编号、课程名
称)。
(8)查找计算机系的学生选修课程数大于 2 的学生的姓名、平均成绩和选
课门数,并按平均成绩降序排列。
3 实验代码
单表查询:
(1)查询计算机系全体学生的信息(包括学号、姓名、性别、出生日期、所
在系、备注)
(2)查询姓“李”的学生的学号和姓名。
(3)查询课程表中没有先行课的课程名
(4)查询考试成绩有不及格的学生的学号。
(5)查询选修了 CO1 课程或 C02 课程的学生的学号及成绩。
(6)查询全体计算机系学生的姓名及其年龄。
(7)查询计算机系在 1999-2000 年之间出生的学生的姓名。
(8)查询姓“李”的学生中姓名按字典顺序排列的前两个学生的学号和姓名。
(9)查询选修了两门以上课程的学生。
(10)查询选修课程数大于等于 2 的学生的学号、平均成绩和选课门数,并按
平均成绩降序排列。
多表查询:
(1) 查询选修了【数据库原理】的计算机系的学生学号和姓名。
(2) 查询每一门课的间接先行课,显示该门课程的课程编号和间接先行课
的课程编号(即先行课的先行课)(有间接先行课才算)。
(3)查询学生的学号、姓名、选修课程的名称和成绩。
(4) 查询选修了课程的学生姓名。
(5) 查询所有学生的信息(包括学号、姓名、性别、出生日期、所在系、备注)和他们的
所选修课程的课程编号。
(6)查询所有课程的名字以及课程被选修的情况(显示信息包括,课程
名、学号、课程编号、成绩)。
(7)列出学生所有可能的选修情况(包括学号、姓名、课程编号、课程名
称)。
(8)查找计算机系的学生选修课程数大于 2 的学生的姓名、平均成绩和选
课门数,并按平均成绩降序排列。
4 实验总结
1. 实验目的与准备:熟悉 SQL 查询语言,掌握基本查询、函数与聚合、连接及子查询
操作。实验前,复习了 SQL 语法,准备了测试数据库。
2. 基本查询操作:通过 SELECT 语句实现了数据检索,学习了 WHERE 子句进行条
件筛选,ORDER BY 排序数据。
3. 函数与聚合操作:使用 COUNT、SUM 等聚合函数统计数据,借助日期函数处理时
间数据,增强了数据处理能力。
4. 连接与子查询:通过 JOIN 操作连接多表数据,利用子查询实现复杂查询需求,深
化了对 SQL 逻辑的理解。
5. 实验总结与反思:实验加深了对 SQL 查询的理解与实践,但也发现对高级查询技巧
掌握不足。今后需加强实践,提升 SQL 应用能力。
资源(SQL代码):