内容发布更新时间 : 2025/2/3 2:56:52星期一 下面是文章的全部内容请认真阅读。
生作业表.课程号;
查询结果截图:
9. 查询与 “张志国”同一班级的学生信息(使用连接查询和子查询方式两种方式)。(10 )
1) 连接查询:
Sql语句:
SELECT 学生表1.*
FROM 学生表 AS 学生表1,学生表 AS 学生表2
WHERE 学生表2.姓名='张志国' AND 学生表1.专业班级=学生表2.专业班级;
查询结果截图:
2) 子查询:
Sql语句:
SELECT * FROM 学生表
WHERE 专业班级 = (SELECT 专业班级
FROM 学生表
WHERE 姓名 = '张志国');
查询结果截图:
10. 查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式两种方
式)。(10分)
1) 连接查询:
Sql语句:
SELECT 课程表1.*
FROM 课程表 AS 课程表1,课程表 AS 课程表2
WHERE 课程表2.课程名 = '计算机应用基础' AND 课程表1.学时数>课程表2.学时数;
查询结果截图:
2) 子查询:
Sql语句:
SELECT * FROM 课程表
WHERE 学时数>(SELECT 学时数 FROM 课程表
WHERE 课程名 = '计算机应用基础');
查询结果截图:
11. 查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、相关子查询、使用exists关键字的相关子查询四种方式)。(20分)
1) 连接查询:
Sql语句:
SELECT 学生表.学号,学生表.姓名 FROM 学生作业表,学生表
WHERE 学生作业表.课程号 = 'K002' AND 学生作业表.学号=学生表.学号;
查询结果截图:
2) 普通子查询:
Sql语句:
SELECT DISTINCT 学生表.学号,学生表.姓名 FROM 学生作业表,学生表 WHERE 学生表.学号 IN(
SELECT 学生表.学号 FROM 学生作业表
WHERE 学生作业表.课程号 = 'K002' AND 学生作业表.学号=学生表.学号)
查询结果截图:
3) 相关子查询:
Sql语句:
SELECT DISTINCT 学生表.学号,学生表.姓名 FROM 学生表,学生作业表 WHERE 学生表.学号 IN (
SELECT 学生作业表.学号
FROM 学生作业表
WHERE 学生作业表.课程号='K002')
查询结果截图:
4) 使用exists关键字的相关子查询:
Sql语句:
SELECT DISTINCT 学生表.学号,学生表.姓名 FROM 学生作业表,学生表 WHERE EXISTS (
SELECT * FROM 学生作业表
WHERE 学生作业表.课程号 = 'K002' AND 学生作业表.学号=学生表.学号)
查询结果截图:
12. 查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。(20分)
Sql语句:
SELECT DISTINCT 学号,课程号,作业1成绩,作业2成绩,作业3成绩 FROM 学生作业表 WHERE 学号 NOT IN(
SELECT 学号 FROM 学生作业表
WHERE 课程号='K001' OR 课程号='M001')
查询结果截图:
四、实验总结
通过本次实验,我更加熟悉了SQL语言查询相关的语句用法。在实验中遇到了很多问题,例如建表时提示主键列不能输入重复值,后来才知道原来要设置两个主键。希望在以后的实验中可以收获更多的实践知识。