【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第三次作业

文章讲述了如何设计一个包含学生信息、课程信息、教师信息的学籍管理系统,并使用SQLSELECT语句创建相关数据库表,展示了学生选课情况、累计学分计算以及课程平均成绩的查询示例。
摘要由CSDN通过智能技术生成

part 1

设计一个学籍管理小系统。系统包含以下信息:

学号、学生姓名、性别、出生日、学生所在系名、学生所在系号、课程名、课程号、课程类型(必修、选修、任选)、学分、任课教师姓名、教师编号、教师职称、教师所属系名、系号、学生所选课程号、学生所选上课教师姓名、选课成绩。

两种不同表达方式的 E-R 图分别如图 1 1 1 和图 2 2 2 所示。

图 1    E-R 图(未注明了键、外键、类型等信息)

图 2    E-R 图(注明了键、外键、类型等信息)

part 2

完成在表上的操作 (用 SQL 的 SELECT 语句):

根据描述内容创建 student 表、course 表、department 表、selectcourse 表、teacher 表、teach 表,分别如图 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 所示。

学号学生姓名性别出生日所在系号
0张三198706100
1李四198706101
2王五198706102
3赵六198706103
4李德198706104
5王和198706105
6田亮198706106
7周润发198706107
8刘德华198706108
9谢霆锋198706109
10邓超198706100
11刘翔198602141
12姚明198602142
13高峰198602143
14史冬鹏198602144
15郭晶晶198602145
16汤唯198602146
17范冰冰198602147
18李冰冰198602148
19赵本山198602149
20郭德纲198602140
21于谦198602141
22岳云鹏198708142
23姜昆198709053
24李金斗198709054
25刘青云198709055
26张靓颖198709056
27韩寒198709057
28李宇春198709058
29张静初198709059
30莫文蔚198709059

表 1    student 关系表

课程号课程名学分课程类型
0模式识别2讲授
1C++编程2讨论
2计算机视觉1讨论
3密码学3讲授
4数理分析2讨论
5英语3讲授
6声乐1讨论
7控制理论3讲授
8信号处理2讨论
9物理学3讲授
10化学分析1讨论
11遗传学3讲授
12数据结构3讲授
13通信工程2讲授
14随机数学3讲授
15日语2讲授
16美术1讨论
17解剖学1讨论
18有机化学1讨论
19材料学2讲授
20流体力学3讲授
21复变函数2讲授
22市场营销3讲授
23人力资源管理3讲授
24组织理论与设计2讨论
25证券投资学2讲授
26宏观经济学1讨论
27微观经济学2讲授
28管理学2讲授
29公司战略1讨论
30德语3讲授
31西班牙语2讲授

表 2    course 关系表

系号系名
0计算机系
1自动化系
2艺术系
3通信系
4外语系
5物理系
6化学系
7数学系
8生物系
9管理系

表 3    department 关系表

课程号学号教师编号选课成绩
00099
10199
21299
31399
42499
52599
63699
73799
84899
94999
105099
115199
126299
136388
147488
157588
168688
178788
189888
199988
2010088
2110188
2211288
2311388
2412488
2512588
2613688
2713777
2814877
2914977
3015077
3115177
016077
116177
217277
317377
418477
518577
619677
719777
820877
920966
1021066
1121166
1222266
1322366
1423466
1523566
1624666
1724766
1825866
1925966
2026066
2126166
2227266
2328366
2428466
2529566
2629666
2730766
2830855
2927955
3026055
3130155

表 4    selectcourse 关系表

教师编号教师姓名职称所在院系号
0牛根生教授0
1王石教授1
2马化腾副教授2
3周鸿祎副教授3
4马云教授4
5柳传志教授5
6史玉柱副教授6
7王建宙教授7
8李彦宏副教授8
9周小川教授9
10王健林教授0
11李开复教授1

表 5    teacher 关系表

教师编号课程号
00
11
22
33
44
55
66
77
88
99
010
111
212
313
414
515
616
717
818
919
020
121
222
323
424
525
626
727
828
929
030
131

表 6    teach 关系表

1. 查询所有学生所选的所有课程名、成绩

查询语句如下:

SELECT C.学生姓名, B.课程名, A.选课成绩 
FROM selectcourse AS A, course AS B, student AS C 
WHERE A.课程号=B.课程号 AND A.学号=C.学号

查询结果如表 7 7 7 所示:

学生姓名课程名选课成绩
张三模式识别99
汤唯模式识别77
张三C++编程99
汤唯C++编程77
李四计算机视觉99
范冰冰计算机视觉77
李四密码学99
范冰冰密码学77
王五数理分析99
李冰冰数理分析77
王五英语99
李冰冰英语77
赵六声乐99
赵本山声乐77
赵六控制理论99
赵本山控制理论77
李德信号处理99
郭德纲信号处理77
李德物理学99
郭德纲物理学66
王和化学分析99
于谦化学分析66
王和遗传学99
于谦遗传学66
田亮数据结构99
岳云鹏数据结构66
田亮通信工程88
岳云鹏通信工程66
周润发随机数学88
姜昆随机数学66
周润发日语88
姜昆日语66
刘德华美术88
李金斗美术66
刘德华解剖学88
李金斗解剖学66
谢霆锋有机化学88
刘青云有机化学66
谢霆锋材料学88
刘青云材料学66
邓超流体力学88
张靓颖流体力学66
邓超复变函数88
张靓颖复变函数66
刘翔市场营销88
韩寒市场营销66
刘翔人力资源管理88
李宇春人力资源管理66
姚明组织理论与设计88
李宇春组织理论与设计66
姚明证券投资学88
张静初证券投资学66
高峰宏观经济学88
张静初宏观经济学66
高峰微观经济学77
莫文蔚微观经济学66
史东鹏管理学77
莫文蔚管理学55
史东鹏公司战略77
韩寒公司战略55
郭晶晶德语77
张靓颖德语55
郭晶晶西班牙语77
莫文蔚西班牙语55

表 7    所有学生所选的所有课程名、成绩查询结果

2. 查询 somestucent 表中学生所选的所有课程名、成绩

somestudent 表给出学生名:

学生姓名
韩寒
李宇春
莫文蔚

表 8    somestudent 关系表

查询语句如下:

SELECT D.学生姓名, B.课程名, A.选课成绩 
FROM selectcourse AS A, course AS B, student AS C, somestudent AS D 
WHERE A.课程号=B.课程号 AND C.学生姓名=D.学生姓名 AND A.学号=C.学号

查询结果如表 9 9 9 所示:

学生姓名课程名选课成绩
韩寒市场营销66
李宇春人力资源管理66
李宇春组织理论与设计66
莫文蔚微观经济学66
莫文蔚管理学55
韩寒公司战略55
莫文蔚西班牙语55

表 9    somestucent 表中学生所选的所有课程名、成绩查询结果

3. 查询 somestudent 表中学生的累计学分(未及格的不算)

查询语句如下:

SELECT D.学生姓名, SUM(B.学分) AS '累计学分' 
FROM selectcourse AS A, course AS B, student AS C, somestudent AS D 
WHERE A.课程号=B.课程号 AND C.学生姓名=D.学生姓名 AND A.学号=C.学号 AND A.选课成绩 >= 60 
GROUP BY C.学号

查询结果如表 10 10 10 所示:

学生姓名累积学分
韩寒3
李宇春5
莫文蔚2

表 10    somestudent 表中学生的累计学分查询结果

4. 查询 somecourse 表中课程的平均成绩

somecourse 表给出课程名:

课程名
模式识别
数据结构
英语

表 11    somescourse 关系表

查询语句如下:

SELECT C.课程名, AVG(A.选课成绩) AS '课程平均成绩' 
FROM selectcourse AS A, course AS B, somecourse AS C
WHERE A.课程号=B.课程号 AND B.课程名=C.课程名
GROUP BY C.课程名

查询结果如表 12 12 12 所示:

课程名课程平均成绩
模式识别88.0
数据结构82.5
英语88.0

表 12    somecourse 表中课程的平均成绩查询结果

5. 各门课按平均成绩排序(降序,若改为升序,只需要将 DESC 换为 ASC)

查询语句如下:

SELECT B.课程名, AVG(A.选课成绩) AS '平均成绩' 
FROM selectcourse AS A, course AS B
WHERE A.课程号=B.课程号
GROUP BY A.课程号
ORDER BY 平均成绩 DESC

查询结果如表 13 13 13 所示:

课程名平均成绩
信号处理88.0
模式识别88.0
C++编程88.0
计算机视觉88.0
密码学88.0
数理分析88.0
英语88.0
声乐88.0
控制理论88.0
物理学82.5
化学分析82.5
遗传学82.5
数据结构82.5
宏观经济学77.0
解剖学77.0
有机化学77.0
材料学77.0
流体力学77.0
复变函数77.0
市场营销77.0
通信工程77.0
人力资源管理77.0
随机数学77.0
组织理论与设计77.0
日语77.0
证券投资学77.0
美术77.0
微观经济学71.5
管理学66.0
公司战略66.0
德语66.0
西班牙语66.0

表 13    各门课按平均成绩排序查询结果

6. 显示所有的课程名和讲课教师名

查询语句如下:

SELECT B.课程名, C.教师姓名
FROM teach AS A, course AS B, teacher AS C
WHERE A.课程号=B.课程号 AND A.教师编号=C.教师编号

查询结果如表 14 14 14 所示:

课程名教师姓名
模式识别牛根生
C++编程王石
计算机视觉马化腾
密码学周鸿祎
数理分析马云
英语柳传志
声乐史玉柱
控制理论王建宙
信号处理李彦宏
物理学周小川
化学分析牛根生
遗传学王石
数据结构马化腾
通信工程周鸿祎
随机数学马云
日语柳传志
美术史玉柱
解剖学王建宙
有机化学李彦宏
材料学周小川
流体力学牛根生
复变函数王石
市场营销马化腾
人力资源管理周鸿祎
组织理论与设计马云
证券投资学柳传志
宏观经济学史玉柱
微观经济学王建宙
管理学李彦宏
公司战略周小川
德语牛根生
西班牙语王石

表 14    所有的课程名和讲课教师名查询结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不牌不改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值