SPJ数据库例题(数据库实验)

article/2025/9/27 0:35:11

题目内容:


设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNANE,CITY);
SPJ(SNO,PNO,JNO,QTY)。
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

今有若干数据如下:

创建表

创建S表:

create table S
(SNO CHAR(4) primary key,
SNAME CHAR(10),
ATATUS CHAR(2),
CITY CHAR(4));

创建P表:

create table P
(PNO CHAR(4) primary key,
PNAME CHAR(10),
COLOR CHAR(2),
WEIGHT SMALLINT);

创建J表:

create table J
(JNO CHAR(4) primary key,
JNAME CHAR(10),
CITY CHAR(4)
);

创建SPJ表:

create table SPJ
(SNO CHAR(4),
PNO CHAR(4),
JNO CHAR(4),
QTY SMALLINT,
primary key (SNO,PNO,JNO),
FOREIGN KEY(SNO) REFERENCES S(SNO),
FOREIGN KEY(PNO) REFERENCES P(PNO),
FOREIGN KEY(JNO) REFERENCES J(JNO)
);

插入数据

向S表中插入相应的数据:

INSERT INTO S
VALUES('S1','精益','20','天津'),
('S2','盛锡','10','北京'),
('S3','东方红','30','北京'),
('S4','丰泰盛','20','天津'),
('S5','为民','30','上海');

运行结果:

向P表中插入相应的数据:

INSERT INTO P
VALUES('P1','螺母','红',12),
('P2','螺栓','绿',17),
('P3','螺丝刀','蓝',14),
('P4','螺丝刀','红',14),
('P5','凸轮','蓝',40),
('P6','齿轮','红',30);

运行结果:

 向J表中插入相应的数据:

INSERT INTO J
VALUES('J1','三建','北京'),
('J2','一汽','长春'),
('J3','弹簧厂','天津'),
('J4','造船厂','天津'),
('J5','机车厂','唐山'),
('J6','无线电厂','常洲'),
('J7','半导体厂','南京');

运行结果:

 向SPJ表中插入相应的数据:

INSERT INTO SPJ
VALUES('S1','P1','J1',200),
('S1','P1','J3',100),
('S1','P1','J4',700),
('S1','P2','J2',100),
('S2','P3','J1',400),
('S2','P3','J2',200),
('S2','P3','J4',500),
('S2','P3','J5',400),
('S2','P5','J1',400),
('S2','P5','J2',100),
('S3','P1','J1',200),
('S3','P3','J1',200),
('S4','P5','J1',100),
('S4','P6','J3',300),
('S4','P6','J4',200),
('S5','P2','J4',100),
('S5','P3','J1',200),
('S5','P6','J2',200),
('S5','P6','J4',500);

运行结果:

语句查询:

1)求供应工程J1零件的供应商号码SNO。

select  SNO from SPJ 
where JNO='J1';

运行结果:

 2)求供应工程J1零件P1的供应商号码SNO。

select  SNO from SPJ 
where JNO='J1' and PNO='P1';

运行结果:

 3)求供应工程J1零件为红色的供应商号码SNO。

select SNO 
from SPJ,P 
where JNO= 'J1' and P.PNO=SPJ.PNO and P.COLOR='红'; 

 运行结果:

 4)求没有使用天津供应商生产的红色零件的工程号。

select  distinct JNO 
from SPJ spj1
where JNO not in(
select JNO from S,P,SPJ spj2
where spj2.SNO=S.SNO and S.CITY='天津' and spj2.PNO=P.PNO and 
P.COLOR='红');

运行结果:

  5)求至少用了供应商S1所供应的全部零件的工程号JNO。

select  distinct JNO from SPJ spj1
where not exists(
select * from SPJ spj2
where spj2.SNO='S1' and not exists(
select * from SPJ spj3
where spj1.JNO=spj3.JNO and spj2.PNO=spj3.PNO));

运行结果:

6)找出所有供应商的姓名和所在城市。

select SNAME,CITY
from S;

7)找出所有零件的名称、颜色、重量。

select PNAME,COLOR,WEIGHT
from P;

 8)找出使用供应商S1所供应零件的工程号码。

select JNO
from SPJ
where SNO='S1';

9)找出工程项目J2所使用的各种零件的名称及其数量。

select PNAME,QTY
from P,SPJ 
where JNO='J2' and P.Pno=SPJ.Pno;

 10)找出上海厂商供应的所有零件号码。

select distinct  PNO
from S,SPJ 
where S.CITY='上海' and S.SNO=SPJ.SNO;

11)找出使用上海产的零件的工程号码。

select JNAME from J 
where JNO in (select JNO from SPJ where SNO in (select SNO from S where CITY='上海'));

12)找出没有使用天津产的零件的工程号码。

select distinct  JNO
from SPJ
where SNO not in
(select SNO from S 
where CITY='天津');

  

更新数据和删除记录

1)把全部红色零件的颜色改为蓝色。

update P 
set COLOR='蓝'
where COLOR='红';

2)有S5供给J4的零件P6改为由S3供应,请做必要的修改。

update SPJ
set SNO='S3'
where SNO='S5' and PNO='P6' and JNO='J4';

3)从供应商关系中删除S2的记录,并从供应情况中删除相应的记录。

//供应关系表
delete from SPJ
where SNO='S2';
//供应商表
delete from S
where SNO='S2';


http://chatgpt.dhexx.cn/article/2AS1toik.shtml

相关文章

mysql建立spj_数据库概论——SQL练习一(SPJ零件问题)

系统: MySQL 8.0.19 题目: 三张表: S(SNO, SNAME, STATUS, CITY) P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME,CITY) SPJ(SNO, PNO, JNO, PRICE, QTY) S表示供应商,各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,各属性依次为零件号,…

SPJ数据库例题

1道论述题: 书本P71页习题6: 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(P…

sql spj

一 select sno,snamevar from student; select sno,snamevar,sdeptvar from student; select * from student; select snamevar,2014-age from student; select snamevar,‘year of birth’,2014-age,lower(sdeptvar) from student; select snamevar from student where …

浅谈online judge平台 spj [special judge] 使用 | 修改问题

浅谈oj平台 spj 使用 | 修改问题 首先:参数对应返回值代码提交几种spj第一种:简单的一类特判第二种:多组输入的特判第三种:需要判断特殊情况[impossible]第四种:带有[testlib.h]的spj第五种:GCPC [German C…

HUSTOJ SPJ 示例

什么是 SPJ SPJ 是 Special Judge 的意思。 什么时候使用 SPJ 当题目答案不止一个的时候,我们就必须使用 SPJ。 如何使用 SPJ 题目中打开 SPJ 首先,我们需要在出题的时候,增加 SPJ 选项,如下图所示。 题目保存后&#xff0…

《数据库原理与运用》上机实验之SPJ

《数据库原理与运用》上机实验之SPJ 前言一、关系模式二、使用SQL语句创建、修改基本表1.对基本表字段名的增加2.对基本表字段名的增加3.索引 二、使用SQL语句对数据库表的单表查询1.对指定列的查询2.对表达式计算和改变表达方式的查询3.消除重复行的查询4.WHERE条件查询5.分组…

SPJ数据库查询

起始 SQL语句建表 建表 后续图示为在SQL Server Management Studio中快捷创建的,并不是代码创建的。 CREATE TABLE S ( SNO CHAR(2) UNIQUE, SNAME CHAR(6), STATUS CHAR(2), CITY CHAR(4));CREATE TABLE J (JNO CHAR(2), JNAME CHAR(8), CITY CHAR(4) ); CREATE …

二 DeepinV20版本安装

安装 https://www.deepin.org/zh/download/ 准备工作:一个U盘,4G就够;镜像包;老毛桃或是官网提供的启动工具。 分区规划:至少3个区, 一个挂 / (建议至少10G), SWAP分区&#xff08…

Windows10+deepin双系统安装(选用意义,安装教程)

1.为什么选用deepin 为什么要选用deepin,想必能看到该篇文章,肯定知道deepin是linux系统,而linux系统的发行版众多,至于具体那些,又有什么区别,请读者参考https://blog.csdn.net/bernin/article/details/83…

Deepin安装NVIDIA显卡驱动

显卡驱动可以通过官方库安装,本文使用官方NVIDIA 驱动手动安装。 时间:2020.8 系统版本:Deepin v20 beta Nvidia驱动安装 1 下载驱动 进入NVIDIA官网下载Linux驱动:NVIDIA官网驱动下载 找到对应驱动后下载,记住下载位…

【系统 win10 deepin】双系统安装(win10和deepin双系统)

概述 所有的事情都源自于一只蝙蝠,在这个无聊且漫长的寒假,终于能够实现躺在家里也能为国家做出贡献的时候了。 既然闲着也是闲着,那为何不折腾一下自己的电脑呢。 相信很多猿在虚拟机里已经体验过linux系统,那么怎么在实体机上怎…

Deepin重装Win10

Deepin重装Win10 分享荣耀magicbook 8256 全盘安装deepin后,重装win10之旅。 如有需要请务必先看完再做!!!会清除电脑硬盘上的全部数据!!!请自行备份!! 重装win10系统我…

【Deepin】 Deepin 系统安装教程

安装过程 准备准备足够的磁盘空间下载格式化制作启动盘 安装设置U盘启动项根据引导安装新建分区 设置 记录一下第N次安装Deepin系统的过程。 准备 准备足够的磁盘空间 deepin用于生活日常的话,不需要太大的空间。我准备了40G左右的空间(很小&#xff0…

国产操作系统Deepin的安装

一、简介 武汉深之度科技有限公司(以下简称深度科技)成立于 2011 年,是专注基于 Linux 的国产操作系统研发与服务的商业公司。 作为国内顶尖的操作系统研发团队,深度科技以提供安全可靠、美观易用的国产操作系统与开源解决方案为…

国产操作系统之深度deepin安装

一、深度deepin简介 Deepin(原名Linux Deepin)致力于为全球用户提供美观易用,安全可靠的Linux发行版。deepin项目于2008年发起,并在2009年发布了以linux deepin为名称的第一个版本。2014年4月更名为Deepin,在中国常被称为“深度操作系统“。深…

Deepin 20版 安装教程(Vmware)

最近一直关注着一个国产系统的动态,至今已经更新到20版,界面优美,体验绝佳,舒适度绝对不比Mac本差,基于Linux内核开发自研的国产系统,真的是细微之处,体验不凡!欢迎试水。 软件的生态…

如何安装 Deepin 20.1深度操作系统(图文) ?

Deepin 深度操作系统是一个用户友好的基于 Debian 的 Linux 发行版。它是一个免费和开源的操作系统,主要用于桌面级别。最近,Deepin 20.1 的稳定版本已经发布。Deepin 20.1 附带了稳定的内核版本 5.4 和 Debian 10.6 包存储库。 系统要求 More than 2 …

Windows+Deepin双系统的安装(win11+deepin20.7.1)

WindowsDeepin双系统的安装(win11deepin20.7.1) 目录 [Win11deepin20的安装方法](https://blog.csdn.net/m0_53397118/article/details/121883445#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0Win11%2Bdeepin20%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%…

window+deepin双系统安装

说明 参考教程:https://baijiahao.baidu.com/s?id1662960328855347503 特别注意,最好用最新的PE工具,我用的 微PE。因为我弄过一次全盘安装,导致整个硬盘在PE工具中的diskgenius无法识别,最终为U盘安装最新版PE工具后…

win10下安装deepin双系统教程

1、右键电脑—>管理—>磁盘管理,选择空闲容量多的磁盘压缩50G空间。 2、登录网址下载镜像和U盘制作工具(启动盘制作不懂自行百度)。 3、U盘插入电脑重新启动,按F10(每个电脑品牌不一样,可百度&#x…