SQLServer数据查询实验报告.docx
- 文档编号:15928107
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:13
- 大小:380.30KB
SQLServer数据查询实验报告.docx
《SQLServer数据查询实验报告.docx》由会员分享,可在线阅读,更多相关《SQLServer数据查询实验报告.docx(13页珍藏版)》请在冰点文库上搜索。
SQLServer数据查询实验报告
试验汇报书
课程名称:
《数据库原理及应用》
试验题目:
试验四
SQLServer数据查询
班级:
学号:
姓名:
指导老师:
成绩:
批阅老师:
年月日
一、试验目
(1)掌握使用Transact-SQLSELECT语句进行基础查询方法。
(2)掌握使用SELECT语句进行条件查询方法。
(3)掌握SELECT语句GROUPBY、ORDERBY以及UNION子句作用和使用方法。
(4)掌握嵌套查询方法。
(5)掌握连接查询操作方法。
二、试验内容及步骤
1.开启SQLServer管理平台,在对象资源管理器中展开studentsdb数据库文件夹。
2.在studentsdb数据库中使用SELECT语句进行基础查询。
(1)在student_info表中,查询每个学生学号、姓名、出生日期信息。
(2)查询学号为0002学生姓名和家庭住址。
(3)找出全部男同学学号和姓名。
3.使用SELECT语句进行条件查询
(1)在grade表中查找分数在80~90范围内学生学号和分数。
(2)在grade表中查询课程编号为0003学生平均分。
(3)在grade表中查询学习各门课程人数。
(4)将学生按出生日期由大到小排序。
(5)查询全部姓“张”学生学号和姓名。
4.对student_info表,按性别次序列出学生学号、姓名、性别、出生日期及家庭住址,性别相同按学号由小到大排序。
5.使用GROUPBY查询子句列出各个学生平均成绩。
6.使用UNION运算符将student_info表中姓“张”学生学号、姓名与curriculum表课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图8所表示。
图联合查询结果集
7.嵌套查询
(1)在student_info表中查找与“刘卫平”性别相同全部学生姓名、出生日期。
(2)使用IN子查询查找所修课程编号为0002、0005学生学号、姓名、性别。
(3)列出学号为0001学生分数比0002号学生最低分数高课程编号和分数。
(4)列出学号为0001学生分数比学号为0002学生最高成绩还要高课程编号和分数。
8.连接查询
(1)查询分数在80~90范围内学生学号、姓名、分数。
(2)查询学习“C语言程序设计”课程学生学号、姓名、分数。
(3)查询全部男同学选课情况,要求列出学号、姓名、课程名称、分数。
(4)查询每个学生所选课程最高成绩,要求列出学号、姓名、课程编号、分数。
(5)查询全部学生总成绩,要求列出学号、姓名、总成绩,没有选修课程学生总成绩为空。
提醒:
使用左外连接。
(6)为grade表添加数据行:
学号0004、课程编号为0006、分数为76。
查询全部课程选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有课程列值为空。
提醒:
使用右外连接。
三、试验结果
1.开启SQLServer管理平台,在对象资源管理器中展开studentsdb数据库文件夹
2.在studentsdb数据库中使用SELECT语句进行基础查询。
(1)在student_info表中,查询每个学生学号、姓名、出生日期信息。
(2)查询学号为0002学生姓名和家庭住址。
(3)找出全部男同学学号和姓名。
3.使用SELECT语句进行条件查询
(1)在grade表中查找分数在80~90范围内学生学号和分数。
(2)在grade表中查询课程编号为0003学生平均分。
(3)在grade表中查询学习各门课程人数。
(4)将学生按出生日期由大到小排序。
(5)查询全部姓“张”学生学号和姓名。
4.对student_info表,按性别次序列出学生学号、姓名、性别、出生日期及家庭住址,性别相同按学号由小到大排序。
5.使用GROUPBY查询子句列出各个学生平均成绩。
6.使用UNION运算符将student_info表中姓“张”学生学号、姓名与curriculum表课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图8所表示。
7.嵌套查询
(1)在student_info表中查找与“刘卫平”性别相同全部学生姓名、出生日期。
Select姓名,出生日期
Fromstudent_info
Where性别=’男’
(select性别fromstudent_info
Where姓名=’刘卫平’)
(2)使用IN子查询查找所修课程编号为0002、0005学生学号、姓名、性别。
(3)列出学号为0001学生分数比0002号学生最低分数高课程编号和分数。
(4)列出学号为0001学生分数比学号为0002学生最高成绩还要高课程编号和分数。
8.连接查询
(1)查询分数在80~90范围内学生学号、姓名、分数。
(2)查询学习“C语言程序设计”课程学生学号、姓名、分数。
(3)查询全部男同学选课情况,要求列出学号、姓名、课程名称、分数。
(4)查询每个学生所选课程最高成绩,要求列出学号、姓名、课程编号、分数。
Selectstudent_info.姓名,grade.学号,curriculum.课程编号,grade.分数
From
(5)查询全部学生总成绩,要求列出学号、姓名、总成绩,没有选修课程学生总成绩为空。
(6)为grade表添加数据行:
学号0004、课程编号为0006、分数为76。
查询全部课程选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有课程列值为空。
四、结果分析
1.查询全部没有选修课程学生信息,返回结果包含学号、姓名、性别。
SELECTstudent_id,student_name,student_sex
FROMstudent_info
WHERE(student_idNOTIN(SELECTstudent_idFROMgrade))
2.怎样实现在student_info表和grade表之间实现交叉连接。
SELECTa.student_id,a.student_name,b.student_id,b.course_no
FROMstudent_infoaCROSSJOINgradeb
3.怎样实现查询每个学生所选课程成绩,并列出学号生成份组汇总行(总成绩)和明细行(各课成绩)。
SELECTa.student_id,a.student_name,c.course_name,b.score
FROMstudent_infoainnerjoin
gradebONa.student_id=b.student_idinnerjoincourse_infocONc.course_no=b.course_no
ORDERBYa.student_id
COMPUTESUM(score)BYa.student_id
4.在查询语句中SELECT、FROM和WHERE选项分别实现什么运算?
投影、选择、自然连接
5.在查询FROM子句中实现表与表之间连接有哪多个方法?
对应关键字分别是什么?
在查询FROM子句中实现表与表之间连接有内连接、外连接和交叉连接。
内连接关键字是innerjoin,外连接关键字是outerjoin,交叉连接关键字是crossjoin。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 数据 查询 实验 报告