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

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    所有的课程名和讲课教师名查询结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/210065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法每日一练]-结构优化(保姆级教程 篇5 树状数组)POJ3067日本 #POJ3321苹果树 #POJ2352星星

目录 今天知识点 求交点转化求逆序对,每次操作都维护一个y点的前缀和 树的变动转化成一维数组的变动,利用时间戳将节点转化成区间 先将y排序,然后每加入一个就点更新求一次前缀和 POJ3067:日本 思路: POJ3321苹…

案例063:基于微信小程序的传染病防控宣传系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder …

leetcode系列:反转链表的形象表示

反转链表是一道比较简单的题,主要考察的是对链表数据结构的理解和双指针应用,比较容易出错的地方是指针的移动顺序。在练习的过程中想到了一个比较形象的表示方法,于是记录下来。 # Definition for singly-linked list. # class ListNode: #…

地理信息系统概论

地理信息系统概论 第一章导论第二章地理信息系统的数据结构第三章空间数据的处理第四章地理信息系统空间数据库第五章空间分析的原理与方法第六章地理信息系统的应用模型第七章地理信息系统的设计与评价第八章地理信息系统产品的输出与设计 第一章导论 数据与信息的关系&#…

Java基础-java.util.Scanner接收用户输入

目录 1. 导入所需要的jar包2. 编写代码运行3. 输出运行结果 1. 导入所需要的jar包 import java.util.Scanner;2. 编写代码运行 public class ScannerDemo {public static void main(String[] args) {/** 使用Scanner接收用户键盘输入的数据* 1. 导包:告诉程序去JD…

【Python】translate包报错RuntimeError: generator raised StopIteration

根据网上有些教程,使用translate包翻译稍微复杂语句的时候,会报错RuntimeError: generator raised StopIteration 实际测试之后发现,主要是from_lang、to_lang两个参数的设置有问题,比如有人说中文写"Chinese"、"Z…

Mysql、Oracle安全项检查表及操作脚本

软件开发全资料获取:点我获取 Mysql检查表 Oracle检查表

Anaconda建虚拟环境并在jupyter中打开

1.假设要用yaml格式创建虚拟环境 从开始里打开anaconda powersheel 输入以下 conda env create -f environment.yaml conda activate env_name activate以下虚拟环境 修改名称 如果不用yaml也可以用 conda create --name my_first_env python3.6 这个来指定 2.(base)变(…

C语言 位运算符 + 应用

常用的位运算符 按位与 快速判断整数的奇偶性 奇数的二进制表示的最低位为1,偶数的二进制表示的最低位为0。 int num 9; if (num & 1) {// num 是奇数 } else {// num 是偶数 }按位异或 交换两个变量的值 int a 5; int b 7; a a ^ b; b a ^ b; a a ^ …

udemy angular decoration 自存

番外 为什么一个ts文件变成了component,因为它使用了components装饰器 components is just a class,you export it so angular know how to use it 举例:组件装饰器 decoration前总是有一个符号 decoration的作用(之一?) NgModu…

【漏洞复现】狮子鱼任意文件上传漏洞

漏洞描述 狮子鱼CMS(Content Management System)是一种网站管理系统,旨在帮助用户更轻松地创建和管理网站。它具有用户友好的界面和丰富的功能,包括页面管理、博客、新闻、产品展示等。 狮子鱼CMS使用简单直观的管理界面,使得网站所有者可以方便地进行内容的发布、管理和…

使用 Tailwind CSS 完成导航栏效果

使用 Tailwind CSS 完成导航栏效果 本文将向您介绍如何使用 Tailwind CSS 创建一个漂亮的导航栏。通过逐步演示和示例代码,您将学习如何使用 Tailwind CSS 的类来设计和定制导航栏的样式。 准备工作 在开始之前,请确保已经安装了 Tailwind CSS。如果没…

PyQt6 QTimeEdit时间控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计39条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

C++新经典模板与泛型编程:将trait类模板用作模板参数

将trait类模板用作模板参数 template<typename T> struct SumFixedTraits;template<> struct SumFixedTraits<char> {using sumT int;static sumT initValue() {return 0;} };template<> struct SumFixedTraits<int> {using sumT __int64;sta…

Proteus仿真--基于DAC0808设计的直流电机调速器

本文介绍基于DAC0808设计的直流电机调速器设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 设置按键A-H按键&#xff0c;每个按键分别对应不同的速度&#xff0c;按下后电机按照设定速度转动 仿真图如下 仿真运行视频 Proteus仿真--基于DAC0808设计的直流电机调…

互联网数据传输原理 |OSI七层网络参考模型

网络模型 OSI 网络参考模型&#xff0c;仅作为参考&#xff0c;也就是说OSI网络实际中并不使用。我们只是把OSI网络模型作为参考&#xff0c;在网络出现问题的时候&#xff0c;可以从一个宏观的整体去分析和解决问题。而且搭建网络的时候也并不一定需要划分为7层 但是当今互联…

2024最新金三银四软件测试面试题

一直以来大大小小参与过不少面试&#xff0c;遇到过不少坑&#xff0c;但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下&#xff0c;希望以后自己能加深印象。 1、appium 怎么定位toast弹框 appium1.6以后回答需要升级u2进行定位。 2、什么是事务&#xff0c;知道事…

PADS9.5封装库转换为AD库

1、打开PADS Layout&#xff0c;File – Library&#xff0c;选中usr&#xff0c;如下图&#xff1a; 2、封装– 导入&#xff0c;选中你的 .d后缀文件(也就是PADS的封装文件)&#xff0c;打开。 3、元件 – 新建 – PCB封装 - 分配 - 确定。 4、&#xff0c;选择“斜线”…

Laya2.13.3接入第三方库Socket.io

服务端&#xff1a; 1.新建一个文件夹&#xff0c;使用npm.init -y创建node工程 2.在控制台使用以下代码下载Socket.io npm install socket.io 3.创建一个app.js的文件&#xff0c;将以下代码填入 import { Server } from "socket.io"; import { createServer }…

Linux学习笔记3 xshell(lnmp)

xshell能连接虚拟机的前提是真机能够ping通虚拟机网址 装OpenSSL依赖文件 [rootlocalhost nginx-1.12.2]# yum -y install openssl pcre-devel 依赖检测[rootlocalhost nginx-1.12.2]# ./configure [rootlocalhost nginx-1.12.2]# yum -y install zlib [rootlocalhost n…