数据库---[复习2]---数据查询---设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式··· ···

article/2025/9/26 22:45:40

文章目录

    • 问题重述
    • 数据表
      • S表:
      • P表:
      • J表:
      • SPJ表:
    • 问题解析
      • 1. 找出所有供应商的姓名和所在城市
      • 2. 找出所有零件的名称,颜色,重量
      • 3. 找出使用供应商S1所供应零件的工程号码
      • 4. 找出工程项目J2使用的各种零件的名称及数量
      • 5. 找出上海厂商供应的所有零件号码
      • 6. 找出使用上海产的零件的工程名称
      • 7. 找出没有使用天津产的零件的工程号码
      • 8. 求供应工程J1零件的不重复的供应商号码sno
      • 9. 求供应工程J1零件P1的供应商号码sno
      • 10. 求供应工程J1零件为红色的供应商号码sno
    • 附加项
      • 1. 求没有使用天津供应商生产的红色零件的工程号jno
      • 2. 求至少用了供应商S1所供应的全部零件的工程号Jno
    • 附录1:

问题重述

设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式:
问题

  1. 找出所有供应商的姓名和所在城市
  2. 找出所有零件的名称,颜色,重量
  3. 找出使用供应商S1所供应零件的工程号码
  4. 找出工程项目J2使用的各种零件的名称及数量
  5. 找出上海厂商供应的所有零件号码
  6. 找出使用上海产的零件的工程名称
  7. 找出没有使用天津产的零件的工程号码
  8. 求供应工程J1零件的不重复的供应商号码sno
  9. 求供应工程J1零件P1的供应商号码sno
  10. 求供应工程J1零件为红色的供应商号码sno

附加项:

  1. 求没有使用天津供应商生产的红色零件的工程号jno
  2. 求至少用了供应商S1所供应的全部零件的工程号Jno

数据表

S表:

S(SNO,SNAME,STATUS,CITY)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

SNOSNAMESTATUSCITY
S1精益20天津
S2盛锡10北京
S3东方红30北京
S4丰泰盛20天津
S5为民30上海

P表:

P(PNO,PNAME,COLOR,WEIGHT)
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

PNOPNAMECOLORWEIGHT
P1螺母12
P2螺栓绿17
P3螺丝刀14
P4螺丝刀14
P5凸轮40
P6齿轮30

J表:

J(JNO,JNAME,CITY)
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

JNOJNAMECITY
J1三建北京
J2一汽长春
J3弹簧厂天津
J4造船厂天津
J5机车厂唐山
J6无线电厂常州
J7半导体厂南京

SPJ表:

SPJ(SNO,PNO,JNO,QTY)
供应商情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

SNOPNOJNOQTY
S1P1J1200
S1P1J3100
S1P1J4700
S1P2J4700
S1P2J2100
S2P3J1400
S2P3J2200
S2P3J4500
S2P3J5400
S2P5J1400
S2P5J2100
S3P1J1200
S3P3J1200
S4P5J1100
S4P6J3300
S4P6J4200
S5P2J4100
S5P3J1200
S5P6J2200
S5P6J4500

创建及插入数据表的SQL语句在文末附录1

问题解析

1. 找出所有供应商的姓名和所在城市

SELECT SNAME,CITY
FROM s;

运行结果:
在这里插入图片描述

2. 找出所有零件的名称,颜色,重量

SELECT PNAME,COLOR,WEIGHT
FROM P;

运行结果:
在这里插入图片描述

3. 找出使用供应商S1所供应零件的工程号码

SELECT JNO
FROM SPJ
WHERE SNO='S1' ;

运行结果:
在这里插入图片描述

4. 找出工程项目J2使用的各种零件的名称及数量

SELECT PNAME,QTY
FROM SPJ,P
WHERE SPJ.PNO=P.PNO AND SPJ.JNO='J2';

运行结果:
在这里插入图片描述

5. 找出上海厂商供应的所有零件号码

SELECT PNO
FROM S,SPJ
WHERE SPJ.SNO=S.SNO AND S.CITY = '上海';

运行结果:
在这里插入图片描述

6. 找出使用上海产的零件的工程名称

SELECT JNO
FROM SNO,PNO
WHERE S.SNO=SPJ.SNO AND S.CITY = '上海';
或
SELECT JNO
FROM J
WHERE JNO IN (SELECT JNO
FROM S,SPJ
WHERE S.SNO=SPJ.SNO AND S.CITY = '上海');

运行结果:
在这里插入图片描述

7. 找出没有使用天津产的零件的工程号码

SELECT JNO
FROM J
WHERE JNO NOT IN(SELECT JNO
FROM  SPJ,S
WHERE S.SNO=SPJ.SNO AND S.CITY='天津');

运行结果:
在这里插入图片描述

8. 求供应工程J1零件的不重复的供应商号码sno

SELECT  DISTINCT SNO
FROM SPJ
WHERE SPJ.JNO = 'J1' ;

运行结果:
在这里插入图片描述

9. 求供应工程J1零件P1的供应商号码sno

SELECT SNO
FROM SPJ
WHERE SPJ.JNO='J1' AND SPJ.PNO = 'P1';

运行结果:
在这里插入图片描述

10. 求供应工程J1零件为红色的供应商号码sno

SELECT SNO
FROM P,SPJ
WHERE SPJ.PNO=P.PNO AND SPJ.JNO = 'J1' AND P.COLOR='红';

运行结果:
在这里插入图片描述

附加项

1. 求没有使用天津供应商生产的红色零件的工程号jno

SELECT JNO
FROM J
WHERE JNO NOT IN (SELECT JNO
FROM P,SPJ,S
WHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY='天津' AND P.COLOR = '红 ' ;

运行结果:
在这里插入图片描述

2. 求至少用了供应商S1所供应的全部零件的工程号Jno

此题中用到了EXISTS谓词的子查询,可查看带有EXISTS谓词的子查询—查询语句中含有‘至少’条件的查询文章。

SELECT DISTINCT JNO
FROM J
WHERE NOT EXISTS(
SELECT *
FROM SPJ SPJY
WHERE SPJY.SNO = 'S1' AND NOT EXISTS(
SELECT *
FROM SPJ SPJZ
WHERE J.JNO = SPJZ.JNO AND 
SPJZ.PNO = SPJY.PNO
AND SPJZ.SNO = 'S1'
) );

运行结果:
在这里插入图片描述

附录1:

/*建立S表*/
CREATE TABLE S(SNO CHAR(9) PRIMARY KEY,
SNAME CHAR(24) UNIQUE,
STATUS INT(4),
CITY CHAR(16));/*P表*/
CREATE TABLE P(PNO CHAR(9) PRIMARY KEY,
PNAME CHAR(24),
COLOR CHAR(8),
WEIGHT INT(4));/*J表*/
CREATE TABLE J(JNO CHAR(9) PRIMARY KEY,
JNAME CHAR(24),
CITY CHAR(16));/*spj表*/
CREATE TABLE SPJ(SNO CHAR(9),
PNO CHAR(9),
JNO CHAR(9),
QTY INT(6),
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,'天津');
INSERT INTO S VALUES('S2','盛锡',10,'北京');
INSERT INTO S VALUES('S3','东方红',30,'北京');
INSERT INTO S VALUES('S4','丰泰盛',20,'天津');
INSERT INTO S VALUES('S5','为民',30,'上海');SELECT * FROM S;/*P表添加数据*/
INSERT INTO P VALUES('P1','螺母','红',12);
INSERT INTO P VALUES('P2','螺栓','绿',17);
INSERT INTO P VALUES('P3','螺丝刀','蓝',14);
INSERT INTO P VALUES('P4','螺丝刀','红',14);
INSERT INTO P VALUES('P5','凸轮','蓝',40);
INSERT INTO P VALUES('P6','齿轮','红',30);SELECT * FROM P;
/*J表添加数据*/
INSERT INTO J VALUES('J1','三建','北京');
INSERT INTO J VALUES('J2','一汽','长春');
INSERT INTO J VALUES('J3','弹簧厂','天津');
INSERT INTO J VALUES('J4','造船厂','天津');
INSERT INTO J VALUES('J5','机车厂','唐山');
INSERT INTO J VALUES('J6','无线电厂','常州');
INSERT INTO J VALUES('J7','半导体厂','南京');
SSSSSS
SELECT * FROM J;
/*SPJ表添加数据*/INSERT INTO SPJ VALUES('S1', 'P1', 'J1',200);
INSERT INTO SPJ VALUES('S1', 'P1', 'J3',100);
INSERT INTO SPJ VALUES('S1', 'P1', 'J4',700);
INSERT INTO SPJ VALUES('S1', 'P2', 'J4',700);
INSERT INTO SPJ VALUES('S1', 'P2', 'J2',100);
INSERT INTO SPJ VALUES('S2', 'P3', 'J1',400);
INSERT INTO SPJ VALUES('S2', 'P3', 'J2',200);
INSERT INTO SPJ VALUES('S2', 'P3', 'J4',500);
INSERT INTO SPJ VALUES('S2', 'P3', 'J5',400);
INSERT INTO SPJ VALUES('S2', 'P5', 'J1',400);
INSERT INTO SPJ VALUES('S2', 'P5', 'J2',100);
INSERT INTO SPJ VALUES('S3', 'P1', 'J1',200);
INSERT INTO SPJ VALUES('S3', 'P3', 'J1',200);
INSERT INTO SPJ VALUES('S4', 'P5', 'J1',100);
INSERT INTO SPJ VALUES('S4', 'P6', 'J3',300);
INSERT INTO SPJ VALUES('S4', 'P6', 'J4',200);
INSERT INTO SPJ VALUES('S5', 'P2', 'J4',100);
INSERT INTO SPJ VALUES('S5', 'P3', 'J1',200);
INSERT INTO SPJ VALUES('S5', 'P6', 'J2',200);
INSERT INTO SPJ VALUES('S5', 'P6', 'J4',500);
INSERT INTO SPJ VALUES('S1', 'P2', 'J4',700);SELECT * FROM SPJ;

此文为期末MYSQL查询语句复习题,祝大家期末考出个好成绩。goodbye!
在这里插入图片描述

END!


http://chatgpt.dhexx.cn/article/G92TSRYC.shtml

相关文章

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 c

多解需要SPJ 入门: 题目:输出 Hello, World!,大小写不限。 比赛目录如下: 标准输入输出数据如下: string1.in(空文件,里面没有任何内容) string1.ans Hello, World! 用户程序(string.cpp)如下: …

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 b

多解需要SPJ 入门: 题目:给出一个不小于12的正整数n,请你输出两个合数,使他们的和等于n,注意,每个测试,有多组测试数据. 比赛目录如下: 标准输入输出数据如下: sum1.in 2 12 13 sum1…

如何配置luogu,codeforces的spj(special judge)

洛谷的spj配置很资瓷啊,以下部分引用来自luogu官方链接 codeforces同理 https://www.luogu.org/wiki/show?name%E5%B8%AE%E5%8A%A9%EF%BC%9Aspecial%20judge 搞了一上午1020导弹拦截的spj step1 先从链接中下载那个testlib-master文件解压后,在那个…

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

题目内容: 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME&#xff0…

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内核开发自研的国产系统,真的是细微之处,体验不凡!欢迎试水。 软件的生态…