1、数据库系统原理试验报告SQL查询语句 数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx 文档Word Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1) Windows 10 2) SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。表1 学生表 学号 性别 专业班级 出生日期 联系0433 艳 女04 生物1986-9-13 0496 越男 04 电子1984-2-23 13812900529 欣 男05 会计1984-1-27 13502220531 志国 男05 生物1986-
2、9-10 13312560538 于兰兰 女05 生物1984-2-20 13312000591 王丽丽 女05 电子1984-3-20 13320800592 王海强 男05 电子 1986-11-1 课程表 表2 课程号课程名 学分数 学时数 任课教师K001 计算机图形学2.5 40 胡晶晶K002 计算机应用基础3 48 任泉K006 数据结构 4 64 马跃先M001 政治经济学4 64 孔繁新S001 高等数学3 48 晓尘 3 表 学生作业表 成绩3 课程号作业 成绩2作业 成绩1作业 学号 文档Word K001 0433 60 75 75 60 K001 0529 70 70
3、 80 K001 70 0531 80 90 K001 80 0591 90 90 K002 80 80 0496 85 K002 70 70 0529 80 80 0531 80 K002 85 75 65 0538 K002 85 85 0592 K002 75 90 0531 80 K006 80 80 0591 K006 80 80 80 70 M001 70 0496 75 M001 65 0591 75 80 S001 0531 80 80 80 0538 60 S001 SQL 语句:写出如下15 分)(查询数据库中有哪些专业班级。Sql语句: SELECT 专业班级 ;学生表F
4、ROM 查询结果截图: 219865 分)(查询在年出生的学生的学号、和出生日期。Sql语句: SELECT 学号,出生日期 FROM 学生表 ; LIKE1986% WHERE出生日期 查询结果截图: 文档Word 3055 分)查询(级的男生信息。Sql语句: SELECT * FROM 学生表 WHERE 学号 LIKE 05% AND 性别 = 男; 查询结果截图: 45 分)查询没有作业成绩的学号和课程号。(Sql语句: SELECT 学号,课程号 FROM 学生作业表 NULL; 成绩 IS IS NULL OR作业32 WHERE作业1成绩IS NULLOR 作业成绩 查询结果截
5、图: 5K0015 分)课程的学生人数。查询选修了(Sql语句: SELECT COUNT(DISTINCT 学号) FROM 学生作业表 ;= K001课程号WHERE 查询结果截图: 文档Word 65 分)查询数据库中共有多少个班级。(Sql语句: SELECT COUNT(DISTINCT 专业班级) ;学生表FROM 查询结果截图: 712平均分和查询选修三门以上(含三门)课程的学生的学号和作业平均分、作业35 分)(作业平均分。Sql语句: SELECT 学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩) FROM 学生表,学生作业表 WHERE 学
6、生表.学号 = 学生作业表.学号 GROUP BY 学生作业表.学号 ;2 HAVING COUNT(*) 查询结果截图: 85 分)(查询于兰兰的选课信息,列出学号、课程名。Sql语句: SELECT 学生作业表.学号,课程名 FROM 学生表,学生作业表,课程表 WHERE = 于兰兰 AND 学生表.学号 = 学生作业表.学号 AND 课程表.课程号 = 学生作业 文档Word ;.课程号表 查询结果截图: 9. 10 )。“志国”同一班级的学生信息(使用连接查询和子查询方式两种方式)(查询与1) 连接查询: Sql语句: SELECT 学生表1.* FROM 学生表 AS 学生表1,学
7、生表 AS 学生表2 ;.专业班级=.专业班级学生表2学生表2.=志国 AND 学生表1WHERE 查询结果截图: 2) 子查询:Sql语句: SELECT * FROM 学生表 WHERE 专业班级 = (SELECT 专业班级 FROM 学生表 );志国= WHERE 查询结果截图: 10. 查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式两种方10 分)(式)。 文档Word 1) 连接查询: Sql语句: SELECT 课程表1.* FROM 课程表 AS 课程表1,课程表 AS 课程表2 ;学时数课程表2.课程表AND 1.学时数=WHERE 课程表2.课程名 计算
8、机应用基础 查询结果截图: 2) 子查询:Sql语句: SELECT * FROM 课程表 WHERE 学时数(SELECT 学时数 FROM 课程表 ); =计算机应用基础 WHERE 课程名 查询结果截图: 11. K002的学生的学号、(使用连接查询、普通子查询、相关子查询、查询选修课程号为exists20 分)使用(关键字的相关子查询四种方式)。1) 连接查询: Sql语句: SELECT 学生表.学号,学生表. FROM 学生作业表,学生表 文档Word ;学号学生表.学生作业表.学号课程号.= = K002 AND WHERE 学生作业表 查询结果截图: 2) 普通子查询:Sql语
9、句: SELECT DISTINCT 学生表.学号,学生表. FROM 学生作业表,学生表 WHERE 学生表.学号 IN( SELECT 学生表.学号 FROM 学生作业表 WHERE 学生作业表.课程号 = K002 AND 学生作业表.学号= ).学号学生表 查询结果截图: 3) 相关子查询: Sql语句: SELECT DISTINCT 学生表.学号,学生表. FROM 学生表,学生作业表 WHERE 学生表.学号 IN ( SELECT 学生作业表.学号 FROM 学生作业表 WHERE 学生作业表.课程号=K002) 文档Word 查询结果截图: exists4) 关键字的相关子查
10、询:使用 语句:SqlDISTINCT 学生表.学号,学生表 SELECT. 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) 文档Word 查询结果截图: 四、实验总结 SQL语言查询相关的语句用法。在实验中遇到了很多通过本次实验,我更加熟悉了问题,例如建表时提示主键列不能输入重复值,后来才知道原来要设置两个主键。 希望在以后的实验中可以收获更多的实践知识。 文档Word
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1