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

news2024/11/24 20:55:43

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;

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

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

相关文章

Java项目:基于SSM框架实现的汽车养护保养管理系统【ssm+B/S架构+源码+数据库+开题+毕业论文+任务书】

一、项目简介 本项目是一套基于SSM框架实现的汽车养护保养管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

VirtualBox 安装UOS统信服务器操作系统

1、准备 1.1安装VirtualBox 由于过程简单,不做赘述! 1.2下载UOS服务器版本 下载免费版本即可 服务器与云计算操作系统-统信软件 (uniontech.com)https://uniontech.com/os-serverCloud.html 2、安装 2.1新建虚拟机 2.2选择虚拟机模式,这…

pandas 根据关键词从表格属性进行筛选企业

文章目录 背景实战情况一情况二 背景 最近一段时间在做企业分类的实验,给定一个企业信息表,利用关键词从企业名称和经营范围中筛选相关企业。 情况一:企业名称和经营范围任何一个包含关键词; 情况二:企业名称和经营范…

飞天茅台酒的惊魂五日

“电商百亿补贴修改发货规则”导致黄牛资金压力剧增,资金压力之下部分黄牛择低价甩卖,其他求货的酒行、大酒商则选择观望,价格下行压力最终扩散,造成整个回收市场踩踏,价格急速下跌。 不到半年时间,飞天茅台…

flink1.12.0学习笔记(七)-监控与优化

flink1.12.0学习笔记第 7 篇-监控与优化 7-1-Flink-Metrics 1.Metrics介绍 由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,开发人员无法实时查看所有的 Task 日志,比如作业很大或者有很多作业的情况下&#xff…

【C++进阶学习】第二弹——继承(下)——挖掘继承深处的奥秘

继承(上):【C进阶学习】第一弹——继承(上)——探索代码复用的乐趣-CSDN博客 前言: 在前面我们已经讲了继承的基础知识,让大家了解了一下继承是什么,但那些都不是重点,今…

半监督学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 介绍一、Self Training自训练1、介绍2、代码示例3、参数解释 二、Label Propagation(标签传播)1、介绍2、代码示例3、参数解释 三、Label Spread…

突然挣不到钱了?带货主播大降薪,有人收入“腰斩”!时薪低至20元,“不如街头发小广告”

韭菜都想来割韭菜了,从00后到60后都在直播带货,部分业内人士认为不懂行的商家以及海量素人主播的加入,拉低了行业的平均薪酬。 2024年的电商年中大促接近尾声,电商直播市场再次成为广为关注的焦点。然而,与热闹的“618…

解放代码:识别与消除循环依赖的实战指南

目录 一、对循环依赖的基本认识 (一)代码中形成循环依赖的说明 (二)无环依赖的原则 二、识别和消除循环依赖的方法 (一)使用JDepend识别循环依赖 使用 Maven 集成 JDepend 分析报告识别循环依赖 &a…

C++使用spdlog输出日志文件

参考博客: 日志记录库 spdlog 基础使用_spdlog 写日志-CSDN博客 GitHub - gabime/spdlog: Fast C logging library. 首先在github上下载spdlog源码,不想编译成库的话,可以直接使用源码,将include文件夹下的spdlog文件夹&#x…

CSS选择符和可继承属性

属性选择符&#xff1a; 示例&#xff1a;a[target"_blank"] { text-decoration: none; }&#xff08;选择所有target"_blank"的<a>元素&#xff09; /* 选择所有具有class属性的h1元素 */ h1[class] { color: silver; } /* 选择所有具有hre…

116.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-解析结构数据的创建信息

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

智谱AI GLM-4V-9B视觉大模型环境搭建推理

引子 最近在关注多模态大模型&#xff0c;之前4月份的时候关注过CogVLM&#xff08;CogVLM/CogAgent环境搭建&推理测试-CSDN博客&#xff09;。模型整体表现还不错&#xff0c;不过不支持中文。智谱AI刚刚开源了GLM-4大模型&#xff0c;套餐里面包含了GLM-4V-9B大模型&…

springboot+vue+mybatis酒店房间管理系统+PPT+论文+讲解+售后

随着现在网络的快速发展&#xff0c;网络的应用在各行各业当中它很快融入到了许多商家的眼球之中&#xff0c;他们利用网络来做这个电商的服务&#xff0c;随之就产生了“酒店房间管理系统”&#xff0c;这样就让人们酒店房间管理系统更加方便简单。 对于本酒店房间管理系统的…

本地localhost与目标地址跨域问题的解决方法

场景 开发过程中遇到一个控件&#xff0c;上传图片到某cdn&#xff0c;目标地址对localhost会有跨域问题&#xff1a; 解决方法 参照此博客&#xff0c;将本地地址定义为某网址&#xff0c;如abc&#xff1a; win10修改本地host文件&#xff0c;用以增加自定义本地访问域名12…

不做题,可以通过PMP考试吗?

如果你想要避免浪费3900元并且不想再支付2500元的补考费&#xff0c;我建议你多做一些PMP考试的练习题&#xff1b;如果你不在意这些费用&#xff0c;也可以选择资助我&#xff0c;嘿嘿。不做题的话&#xff0c;通过PMP考试的几率是非常小的。因为做题是检验我们学习成果并发现…

躬行践履始玉成,行而不辍终致远 | 中创算力季度优秀员工表彰大会

蓬勃发展&#xff0c;根基在人。在中创发展的道路上&#xff0c;有初心不改的领导者、有披星戴月的业务标杆、也有默默坚守的员工&#xff0c;他们扎根中创&#xff0c;用努力、拼搏、坚持&#xff0c;在中创的历程上镌刻下 属于自己的一份印记&#xff01; 为了表彰优秀&…

电商商品项目||电商竞品分析|主流电商商品API接口在竞品分析中的重要应用

竞争数据采集 竞争数据是对在电子商务业务中彼此存在竞争关系的商家、品牌、产品(即竞争对手&#xff09;等各项运营数据的总称&#xff0c;在电子商务企业的经营过程中&#xff0c;对竞争对手进行分析可以帮助决策者和管理员了解竞争对手的发展势头&#xff0c;为企业成略制定…

多尺度特征提取:原理、应用与挑战

多尺度 多尺度特征提取&#xff1a;原理、应用与挑战**原理****应用****挑战****总结** 多尺度特征提取&#xff1a;原理、应用与挑战 在计算机视觉、自然语言处理和信号处理等领域&#xff0c;有效地捕捉和解析数据的多种尺度特性是至关重要的。多尺度特征提取是一种技术&…

24年下半年安徽教资认定准确时间和流程

安徽教资认定准确时间 网上报名时间&#xff1a; 第一批次&#xff1a;4月8日至4月19日17时 第二批次&#xff1a;6月17日至6月28日17时 注意&#xff1a;符合安徽省申请条件的普通大中专院校2024届全日制毕业生&#xff0c;应统一选择6月17日至6月28日17时的时间段进行网上报名…