当前位置: 首页 > news >正文

JMU 数科 数据库与数据仓库期末总结(4)实验设计题

E-R图

实体-关系图

E-R图的组成要素主要包括:

  1. 实体(Entity):实体代表现实世界中可相互区别的对象或事物,如顾客、订单、产品等。在图中,实体通常用矩形表示,并在矩形内标注实体的名称。

  2. 属性(Attribute):属性描述实体的特征或性质,比如顾客的姓名、年龄、地址等。属性在E-R图中一般位于实体的下方,用椭圆表示,并通过连线与实体相连。

  3. 关系(Relationship):关系表示实体之间的联系,例如一个顾客可以有多个订单。关系用菱形表示,并附有描述关系的文本标签,通过连线连接相关的实体。关系可以有一对一、一对多、多对一或多对多等多种类型。

举个栗子

商店:商店编号,商店名,地址

商品:商品号,单价

职工:职工号,名字,性别

有以下关系:一个商品可以提供给多个商店,一个商店可以销售多个商品,会产生月销售量。职工只能在一个商店工作,商店可以聘用多个员工,聘用时会签合同,谈薪资。

分析:

上述中,实体为商店,商品,职工;

属性有各个实体的属性;

关系有 销售(多对多),聘用(一对多);

E-R图如下:

将E-R图转为表 

还是上面的例子。

首先每个实体都各自为一张表。

1对1,则任选其一将对方的主键作为自己的外键,且将关系里的属性放入自己。

1对多,则选多的那一方,将对方的主键作为自己的外键,且将关系里的属性放入自己。

多对多,则此关系另成一张表,外键为跟这个关系连着的实体的主键。

分析:

如上关系,成以下表:

商店:商店编号,商店名,地址。

销售:销售量,商店号商品号

商品:商品号,单价。

职工:职工号,姓名,性别,商店号,合同,薪资。

(红色为主键,橙色为外键)

SQL写代码

创建数据库:

CREATE DATABASE SDSystem;

创建商店表并添加约束:

CREATE TABLE SD(sdid INT PRIMARY KEY,sdname VARCHAR(50) NOT NULL,dz VARCHAR(50)
);

创建商品表并添加约束:

CREATE TABLE SP(spid INT PRIMARY KEY,dj INT
);

创建销售表并添加约束:

CREATE TABLE XS(xsl INT,FOREIGN KEY (sdid) REFERENCES SD (sdid),FOREIGN KEY (spid) REFERENCES SP (spid));

创建职工表并添加约束:

CREATE TABLE ZG(zgid INT PRIMARY KEY,name VARCHAR(50) NOT NULL,sex CHAR(1) CHECK(sex in ('M','F') ),xz INT,ht VARCHAR(50),FOREIGN KEY (sdid) REFERENCES SD (sdid)
);

增删改查修改:

向商店表添加记录

INSERT INTO SD (sdid, sdname, dz) VALUES (1, '北京店', '北京市朝阳区');

 向商品表添加记录

INSERT INTO SP (spid, dj) VALUES (101, 100);

向销售表添加记录

INSERT INTO XS (xsl, sdid, spid) VALUES (1, 1, 101);

向职工表添加记录

INSERT INTO ZG (zgid, name, sex, xz, ht, sdid) VALUES (1, '张三', 'M', 5, '销售经理', 1);

从商店表删除记录

DELETE FROM SD WHERE sdid = 1;

修改职工的薪资

UPDATE ZG SET xz = 8 WHERE zgid = 1;

查询所有职工信息

SELECT * FROM ZG;

查询特定商店下的所有商品销售记录

SELECT XS.xsl, SP.dj, SD.sdname 
FROM XS 
JOIN SP ON XS.spid = SP.spid 
JOIN SD ON XS.sdid = SD.sdid 
WHERE SD.sdid = 1;

注释一下: 

-- 查询销售表(XS)、商品表(SP)以及商店表(SD)的相关信息
SELECT -- 选取销售记录的编号(xsl)XS.xsl, -- 选取商品的单价(dj)SP.dj, -- 选取商店的名称(sdname)SD.sdname FROM -- 从销售表开始查询XS -- 首先通过商品ID(spid)将销售表(XS)与商品表(SP)进行连接,-- 这样就可以获取与每条销售记录相对应的商品信息JOIN SP ON XS.spid = SP.spid -- 然后,通过商店ID(sdid)进一步将上述结果与商店表(SD)连接,-- 使得每条销售记录都能关联到其发生的商店信息JOIN SD ON XS.sdid = SD.sdid -- 最后,通过WHERE子句过滤出特定条件的记录,
-- 本例中只选取那些发生在商店ID为1的销售记录
WHERE SD.sdid = 1;

单表查询示例

查询商店表中所有的商店名称
SELECT sdname FROM SD;

多表查询示例

多表查询通常涉及JOIN操作,用来从两个或多个相关联的表中获取数据。

查询每个商品的名称及其所属商店的名称
SELECT SP.spname, SD.sdname
FROM SP
JOIN SD ON SP.sdid = SD.sdid;
创建一个视图,显示每个商店的销售总额

这个视图将汇总每个商店的销售总额,假设XS表中有一个字段je(金额)记录了每次销售的具体金额。

CREATE VIEW VW_SalesByStore AS
SELECT SD.sdid, SD.sdname, SUM(XS.je) AS TotalSalesAmount
FROM SD
JOIN XS ON SD.sdid = XS.sdid
GROUP BY SD.sdid, SD.sdname;

注释一下:

-- 创建一个名为VW_SalesByStore的视图,用于展示每个商店的销售总额
--AS用来定义别名
CREATE VIEW VW_SalesByStore AS
-- 从商店表(SD)和销售表(XS)中选择数据
SELECT -- 选择商店的ID(sdid)SD.sdid, -- 选择商店的名称(sdname)SD.sdname, -- 计算并汇总每个商店的销售总额,这里假设销售表中有字段'je'表示销售金额SUM(XS.je) AS TotalSalesAmount FROM -- 首先从商店表开始SD -- 使用INNER JOIN将销售表与商店表连接起来,基于商店ID(sdid)相等的条件JOIN XS ON SD.sdid = XS.sdid -- 使用GROUP BY语句按商店ID和商店名称分组
GROUP BY SD.sdid, SD.sdname;

视图的应用示例:使用视图查询销售表现最佳的商店

我们可以利用第一个创建的视图VW_SalesByStore来快速查询销售总额最高的商店

SELECT *
FROM VW_SalesByStore
ORDER BY TotalSalesAmount DESC
LIMIT 1;

注释一下:

-- 从先前创建的视图VW_SalesByStore中选择所有列
SELECT * 
FROM -- 视图名称为VW_SalesByStore,它提供了每个商店的销售总额信息VW_SalesByStore -- 使用ORDER BY子句对结果集进行排序
ORDER BY -- 按照TotalSalesAmount列(即每个商店的销售总额)进行降序排序TotalSalesAmount DESC -- 使用LIMIT子句限制返回的结果数量(销售额最高的那个商店)
LIMIT 1;

相关文章:

JMU 数科 数据库与数据仓库期末总结(4)实验设计题

E-R图 实体-关系图 E-R图的组成要素主要包括: 实体(Entity):实体代表现实世界中可相互区别的对象或事物,如顾客、订单、产品等。在图中,实体通常用矩形表示,并在矩形内标注实体的名称。 属性…...

Go版RuoYi

RuoYi-Go(DDD) 1. 关于我(在找远程工作,给机会的老板可以联系) 个人介绍 2. 后端 后端是用Go写的RuoYi权限管理系统 (功能正在持续实现) 用DDD领域驱动设计(六边形架构)做实践 后端 GitHub地址 后端 Gitee地址 3. 前端 本项目没有自研前端,前端代…...

八股系列 Flink

Flink 和 SparkStreaming的区别 设计理念方面 SparkStreaming:使用微批次来模拟流计算,数据已时间为单位分为一个个批次,通过RDD进行分布式计算 Flink:基于事件驱动,是面向流的处理框架,是真正的流式计算…...

HTTP/2 协议学习

HTTP/2 协议介绍 ​ HTTP/2 (原名HTTP/2.0)即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。…...

“先票后款”条款的效力认定

当事人明确约定一方未开具发票,另一方有权拒绝支付工程款的,该约定对当事人具有约束力。收款方请求付款方支付工程款时,付款方可以行使先履行抗辩权,但为减少当事人诉累,收款方在诉讼中明确表示愿意开具发票&#xff0…...

CSDN 自动上传图片并优化Markdown的图片显示

文章目录 完整代码一、上传资源二、替换 MD 中的引用文件为在线链接参考 完整代码 完整代码由两个文件组成,upload.py 和 main.py,放在同一目录下运行 main.py 就好! # upload.py import requests class UploadPic: def __init__(self, c…...

常见日志库NLog、log4net、Serilog和Microsoft.Extensions.Logging介绍和区别

在C#中,日志库的选择主要取决于项目的具体需求,包括性能、易用性、可扩展性等因素。以下是关于NLog、log4net、Serilog和Microsoft.Extensions.Logging的基本介绍和使用示例。 包含如何配置输出日志到当前目录下的log.txt文件及控制台的示例,…...

【PX4-AutoPilot教程-TIPS】离线安装Flight Review PX4日志分析工具

离线安装Flight Review PX4日志分析工具 安装方法 安装方法 使用Flight Review在线分析日志,有时会因为网络原因无法使用。 使用离线安装的方式使用Flight Review,可以在无需网络的情况下使用Flight Review网页。 安装环境依赖。 sudo apt-get insta…...

探究Spring Boot自动配置的底层原理

在当今的软件开发领域,Spring Boot已经成为了构建Java应用程序的首选框架之一。它以其简单易用的特性和强大的功能而闻名,其中最引人注目的特性之一就是自动配置(Auto-Configuration)。Spring Boot的自动配置能够极大地简化开发人…...

Fedora40的#!bash #!/bin/bash #!/bin/env bash #!/usr/bin/bash #!/usr/bin/env bash

bash脚本开头可写成 #!/bin/bash , #!/bin/env bash , #!/usr/bin/bash , #!/usr/bin/env bash #!/bin/bash , #!/usr/bin/bash#!/bin/env bash , #!/usr/bin/env bash Fedora40Workstation版的 /bin 是 /usr/bin 的软链接, /sbin 是 /usr/sbin 的软链接, rootfedora:~# ll …...

重生之 SpringBoot3 入门保姆级学习(19、场景整合 CentOS7 Docker 的安装)

重生之 SpringBoot3 入门保姆级学习(19、场景整合 CentOS7 Docker 的安装) 6、场景整合6.1 Docker 6、场景整合 6.1 Docker 官网 https://docs.docker.com/查看自己的 CentOS配置 cat /etc/os-releaseStep 1: 安装必要的一些系统工具 sudo yum insta…...

cve_2014_3120-Elasticsearch-rce-vulfocus靶场

1.背景 来源:ElasticSearch(CVE-2014-3120)命令执行漏洞复现_mvel 漏洞-CSDN博客 参考:https://www.cnblogs.com/huangxiaosan/p/14398307.html 老版本ElasticSearch支持传入动态脚本(MVEL)来执行一些复…...

吴恩达2022机器学习专项课程C2W3:2.26 机器学习发展历程

目录 开发机器学习系统的过程开发机器学习案例1.问题描述2.创建监督学习算法3.解决问题4.小结 误差分析1.概述2.误差分析解决之前的问题3.小结 增加数据1.简述2.增加数据案例一3.增加数据案例二4.添加数据的技巧5.空白创建数据6.小结 迁移学习1.简述2.为什么迁移学习有作用3.小…...

当OpenHarmony遇上OpenEuler

1、 安装openEuler 虚拟机、物理机器当然都可以安装。虚拟机又可以使用WSL、或者VMWare、VirtualBox虚拟机软件,如果需要安装最新版本,建议使用后者。当前WSL只支持OpenEuler 20.03。 1.1 WSL openEuler WSL的安装都是程序员的必备技能了,…...

Apple - Framework Programming Guide

本文翻译自:Framework Programming Guide(更新日期:2013-09-17 https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i 文章目录 一、框架编程指南简介…...

R可视化:ggpubr包学习

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者 Xiao hong书:生信学习者 知hu:生信学习者 CDSN:生信学习者2 介绍 ggpubr是我经常会用到的R包,它傻瓜式的画图方式对很多初次接触R绘图的人来…...

优化Spring Boot项目启动时间:详解与实践

目录 引言了解Spring Boot框架启动机制常见启动瓶颈分析优化策略 禁用不必要的自动配置使用Profile进行开发和生产环境区分精简依赖延迟加载Bean并行初始化Bean缓存数据源连接优化Spring Data JPA使用Spring Boot DevTools 通过性能测试工具分析和优化实战示例:一个…...

Android如何简单快速实现RecycleView的拖动重排序功能

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 要实现这个拖动重排序功能,主要是用到了RecycleView的ItemTouchHelper类 首先是定义一个接口 interface ItemTouchHelperAdapter …...

LabVIEW利用旋转编码器脉冲触发数据采集

利用旋转编码器发出的脉冲控制数据采集,可以采用硬件触发方式,以确保每个脉冲都能触发一次数据采集。本文提供了详细的解决方案,包括硬件连接、LabVIEW编程和触发设置,确保数据采集的准确性和实时性。 一、硬件连接 1. 旋转编码…...

Dubbo3 服务原生支持 http 访问,兼具高性能与易用性

作者:刘军 作为一款 rpc 框架,Dubbo 的优势是后端服务的高性能的通信、面向接口的易用性,而它带来的弊端则是 rpc 接口的测试与前端流量接入成本较高,我们需要专门的工具或协议转换才能实现后端服务调用。这个现状在 Dubbo3 中得…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...