数据库系统原理实验报告.docx
- 文档编号:6035783
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:15
- 大小:605.79KB
数据库系统原理实验报告.docx
《数据库系统原理实验报告.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
数据库系统原理实验报告
注1.每个实验项目一份实验报告。
2.实验报告第一页学生必须使用规定的实验报告纸书写,附页用实验报告附页纸或A4纸书写。
3.实验教师必须对每份实验报告进行批改,用红笔指出实验报告中的错、漏之处,并给出评语、成绩,签全名、注明日期。
实验四SQL简单查询功能
一、实验目的
·掌握SELECT语句的基本语法格式;
·熟练掌握使用SQL语句进行单表查询;
·熟练掌握GROUPBY子句、HAVING子句、ORDERBY子句和集函数的使用。
二、实验内容
·利用SQLSERVER管理平台创建三张关系表。
·使用查询编辑器完成对所建基本表的简单查询。
·在查询编辑器中输入查询语句,并进行调试,给出运行结果。
三、实验步骤
1.启动SQLSERVER管理平台,选择“学生管理XSGL”数据库。
2.创建“学生(STUDENT)”表、“课程(COURSE)”表、“成绩(SC)”表。
查看各表的结构。
表4-1“学生”表结构
列名数据类型允许空默认值主码
学号varchar(20)√
姓名varchar(20)
性别varchar
(2)男
出生日期int√
所在院系varchar(20)√
表4-2“课程”表结构
列名数据类型允许空默认值主码
课程号int√
课程名varchar(30)
课程类型varchar(20)
所在院系int√
表4-3“成绩”表结构
列名数据类型允许空主键外码
学号varchar(20)√√
课程号int√√
分数int√
3.修改表中的样本数据。
、课程表样本数据:
表4-3“成绩”表结构
课程号课程名课程类型学时
01数据结构必修课68
02离散结构必修课51
03数据库原理必修课51
04多媒体技术选修课34
05信息安全技术选修课51
、学生表样本数据:
学号姓名性别年龄所在院系
2007001李南男19计算机系
2007107王平男20自动化系
2007202王梅女19通信系
2007204张伟男22通信系
2007002吴会男20计算机系
2007003周海女19计算机系
2007104董伟男20自动化系
2007108王英女19自动化系
2007009韩嘉女18计算机系
2007010邵雯女20计算机系
、成绩表样本数据:
学号课程号分数
20070010190
20070010280
20070010376
20071070188
20071070279
20071070387
20071070568
20072020376
20072020578
20070030354
20071040178
20071080365
4.实现下列查询要求,在实验报告中给出查询语句,显示查询结果。
(如需截图,只给出查询结果部分的图即可)
(1)查询全体学生的信息,查询结果按所在系的系名升序排列,同一系按学号降序排列。
SQL语句:
SELECT学号,姓名,性别,年龄,所在院系
FROM学生
ORDERBY所在院系ASC,学号DESC;
结果截图:
(2)查询成绩表中成绩小于70分的学生学号和成绩。
SQL语句:
SELECT学号,分数
FROM成绩
WHERE分数<70;
结果截图:
(3)查询选修了03号课程成绩及格的学生。
SQL语句:
SELECTDISTINCT成绩.学号,姓名
FROM成绩,学生
WHERE成绩.学号=学生.学号AND分数>=60AND课程号=3;
结果截图:
(4)查询03号课程成绩在70-80之间的学生。
SQL语句:
SELECTDISTINCT成绩.学号,姓名
FROM成绩,学生
WHERE成绩.学号=学生.学号AND分数BETWEEN70AND80AND课程号=3;
结果截图:
(5)查询课程中含有“数据”字样的课程信息。
SQL语句:
SELECT课程名
FROM课程
WHERE课程名LIKE'数据%';
结果截图:
(6)按照学号的升序、课程号的降序查询学生的成绩信息。
SQL语句:
SELECT学号,课程号,分数
FROM成绩
ORDERBY学号ASC,课程号DESC;
结果截图:
(7)统计每个系的学生人数。
SQL语句:
SELECT所在院系,COUNT(学号)
FROM学生
GROUPBY所在院系;
结果截图:
(8)统计选修了03课程的学生的最高分,最低分,总成绩和平均分。
SQL语句:
SELECTMAX(DISTINCT分数)AS最高分,
MIN(DISTINCT分数)AS最低分,
SUM(DISTINCT分数)AS总分,
AVG(DISTINCT分数)AS平均分
FROM成绩
WHERE课程号=3;
结果截图:
(9)统计每门课程的选修人数。
SQL语句:
SELECTDISTINCT课程号,COUNT(学号)AS选课人数
FROM成绩
GROUPBY课程号;
结果截图:
(10)统计每位同学选修的课程的门数及总成绩。
SQL语句:
SELECTDISTINCT学号,COUNT(学号)AS选课门数,SUM(分数)AS总分
FROM成绩
GROUPBY学号;
结果截图:
四、问题讨论
1.每次查询完成注意观察结果,分析所写语句是否正确。
如有问题进行调试。
答:
结果均正确,无需其他调试。
实验五SQL复杂查询功能
一、实验目的
·熟练掌握使用SQL语句进行多表连接查询;
·掌握多表查询的技术;
·掌握使用嵌套查询的方法,熟练掌握IN子查询。
二、实验内容
·使用查询编辑器完成对上次实验建立的基本表的高级查询。
·在查询编辑器中输入查询语句,并进行调试,给出运行结果。
三、实验步骤
1.启动SQLSERVER管理平台,选择“学生管理XSGL”数据库。
2.实现下列查询要求,在实验报告中给出查询语句,显示查询结果。
(截图时只给出查询结果部分的图即可)
(1)查询所有学生的选课信息,列出学生学号,姓名,课程名和成绩。
SQL语句:
SELECT学生.学号,姓名,课程名,分数
FROM学生,成绩,课程
WHERE学生.学号=成绩.学号AND课程.课程号=成绩.课程号;
结果截图:
(2)查询各科平均成绩超过80分的学生姓名。
SQL语句:
SELECT姓名
FROM学生
WHERE学号IN
(SELECT学号
FROM成绩
GROUPBY学号
HAVINGAVG(分数)+(0.5)>80);
结果截图:
(3)查询选修了3号课程的同学的基本信息。
SQL语句:
SELECT*
FROM学生
WHERE学号IN
(SELECTDISTINCT学号
FROM成绩
WHERE课程号=3);
结果截图:
(4)统计平均成绩大于70分的课程名。
SQL语句:
SELECT课程名
FROM课程
WHERE课程号IN
(SELECT课程号
FROM成绩
GROUPBY课程号
HAVINGAVG(分数)>70);
结果截图:
(5)查询选修了数据库原理课程的同学所在系及其姓名。
(用两种方法实现)。
、嵌套查询:
SQL语句:
SELECT所在院系,姓名
FROM学生
WHERE学号IN
(SELECT学号
FROM成绩
WHERE课程号IN
(SELECT课程号
FROM课程
WHERE课程名='数据库原理'));
结果截图:
、连接查询:
SQL语句:
SELECT所在院系,姓名
FROM学生,成绩,课程
WHERE学生.学号=成绩.学号AND课程.课程号=成绩.课程号AND课程名='数据库原理';
结果截图:
(6)统计选修了3门以上课程的学生姓名。
SQL语句:
SELECT姓名
FROM学生
WHERE学号IN
(SELECT学号
FROM成绩
GROUPBY学号
HAVINGCOUNT(课程号)>3);
结果截图:
四、问题讨论
1.每次查询完成注意观察结果,分析所写语句是否正确。
如有问题进行调试。
答:
结果均正确,无需其他调试。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 报告