SPJ数据库查询

article/2025/9/27 0:46:55

起始

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 TABLE P
(PNO CHAR(2) UNIQUE,
PNAME CHAR(6),
COLOR CHAR(2),
WEIGHT INT
);CREATE TABLE SPJ
(SNO CHAR(2),
PNO CHAR(2),
JNO CHAR(2),
QTY INT);

插入数据

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','上海');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);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','半导体厂','南京');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','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);

SPJ数据库,包括S、P、J、SPJ四张表

表的设计、内容如下:

供应商表——S表

S表设计

s表设计

SNO供应商代码
SNAME供应商名称
STATUS供应商状态
CITY供应商所在城市

S表内容

s表内容

零件表——P表

P表设计

p表设计

PNO零件代码
PNAME零件名
COLOR颜色
WEIGHT重量

P表内容

在这里插入图片描述

工程项目表——J表

J表设计

在这里插入图片描述

JNO工程项目代码
JNAME工程项目名
CITY工程项目所在城市

J表内容

在这里插入图片描述

供应情况表——SPJ表

SPJ表设计

在这里插入图片描述

SNO供应商代码
PNO零件代码
JNO工程项目代码
QTY供应数量(x供应商供应x种零件给x工程项目的数量)

关系:

在这里插入图片描述

在这里插入图片描述

S、P、J 设置类似,这里就只贴了一张 J 的。

SPJ表内容

在这里插入图片描述

用SQL语言完成如下查询:

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

需要在SPJ数据库的S表中查询 【姓名、城市】

新建查询,输入如下语句:

SELECT SNAME,CITY FROM SPJ.dbo.S

运行,结果如下:

在这里插入图片描述

(2)找出所有零件的名称、颜色、重量

需要在SPJ数据库的P表中查询 【名称、颜色、重量】

基础查询,运行如下语句:

SELECT PNAME,COLOR,WEIGHT FROM SPJ.dbo.P

运行结果如下:

在这里插入图片描述

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

需要在SPJ数据库的SPJ表中查询 【供应商代码[S1]、工程代码】

使用了where,运行语句:

SELECT SNO,JNO FROM SPJ.dbo.SPJ WHERE SNO = 'S1'

结果:

在这里插入图片描述

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

需要在SPJ数据库的P表中查询 【零件名称、零件数量】,同时连接SPJ表的PNO【项目工程代码J2】

多表连接查询

查询SPJ表中【J2】对应的PNO,再根据PNO去查询P表内的PNAME和WEIGHT。

运行语句:

SELECT PNAME,WEIGHT FROM SPJ.dbo.P
JOIN SPJ.dbo.SPJON SPJ.dbo.P.PNO = SPJ.dbo.SPJ.PNOWHERE JNO = 'J2'

或者这个语句:

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

结果:

在这里插入图片描述

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

需要在SPJ数据库的SPJ表中查询【零件号码】,条件是S表的【上海厂商】的SNO。

多表连接查询,先在S表中查询【上海厂商】对应的SNO,再根据这个SNO去SPJ表找对应的PNO,PNO即为所求。

运行语句:

SELECT DISTINCT PNO FROM SPJ.dbo.SPJ
JOIN SPJ.dbo.SON SPJ.dbo.SPJ.SNO = SPJ.dbo.S.SNOWHERE CITY = '上海'

或者这个语句:

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

结果(此处没有删除相同项):

在这里插入图片描述

若要去掉相同项,则只需要在 [SELECT] 后边添加 [DISTINCT] 即可,即如下代码:

SELECT DISTINCT PNO FROM SPJ.dbo.SPJ
JOIN SPJ.dbo.SON SPJ.dbo.SPJ.SNO = SPJ.dbo.S.SNOWHERE CITY = '上海'

结果:

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

需要在SPJ数据库的SPJ表中查询【工程名称】,条件是S表的【上海厂商】的SNO。

多表连接查询,先在S表中查询【上海厂商】对应的SNO,再根据这个SNO去SPJ表找对应的JNO,最后在J表通过JNO找到JNAME,JNAME即为所求。

运行语句:

SELECT JNAME FROM SPJ.dbo.J
WHERE JNO IN(SELECT DISTINCT JNO FROM SPJ.dbo.SPJJOIN SPJ.dbo.SON SPJ.dbo.SPJ.SNO = SPJ.dbo.S.SNOWHERE CITY = '上海')

或者语句:

SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO;

结果(此处没有删除相同项):

在这里插入图片描述

若要去掉相同项,则只需要在 [SELECT] 后边添加 [DISTINCT] 即可,即如下代码:

SELECT DISTINCT JNO FROM SPJ.dbo.SPJ
JOIN SPJ.dbo.SON SPJ.dbo.SPJ.SNO = SPJ.dbo.S.SNOWHERE CITY = '上海'

结果:

在这里插入图片描述

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

需要在SPJ数据库的SPJ表中查询【工程号码JNO】,条件是S表的【天津以外】零件的SNO。

七题第一种答案

多表连接查询,WHERE 的条件换为 CITY != ’天津‘ 即可

运行语句:

SELECT DISTINCT JNO FROM SPJ.dbo.SPJ
JOIN SPJ.dbo.SON SPJ.dbo.SPJ.SNO = SPJ.dbo.S.SNOWHERE CITY != '天津'

结果(默认消除相同项):


七题第二种答案(网络)

运行语句:

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

结果:

在这里插入图片描述

(8)把全部红色零件的颜色改成蓝色

需要在SPJ数据库的P表中修改【COLOR】 红色 —>蓝色

更新数据

使用update语句进行修改,其语法格式如下:

UPDATE <表名> SET <列名> = 表达式 [,……n][WHERE 更新条件]

运行语句:

UPDATE SPJ.dbo.P SET COLOR = '蓝'WHERE COLOR = '红'

结果:

在这里插入图片描述

(9)由S5供给J4的零件P6改为由S3供应

需要在SPJ数据库的SPJ表中查询【S5、J4、P6】,之后将该数据的SNO修改为S3。

运行语句:

UPDATE SPJ.dbo.SPJ SET SNO = 'S3'WHERE SNO = 'S5' AND JNO = 'J4' AND PNO = 'P6'

结果:

在这里插入图片描述

(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录

需要在SPJ数据库的S表中删除【S2】,并且在SPJ表中删除所有有关【S2】的记录。

删除数据

使用delete语句进行删除,其语法格式如下:

DELETE [ FROM ] <表名> [ WHERE 删除条件 ]

运行语句:

DELETE FROM SPJ.dbo.SWHERE SNO = 'S2';
DELETE FROM SPJ.dbo.SPJWHERE SNO = 'S2';

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


(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录

需要在SPJ数据库的S表中删除【S2】,并且在SPJ表中删除所有有关【S2】的记录。

删除数据

使用delete语句进行删除,其语法格式如下:

DELETE [ FROM ] <表名> [ WHERE 删除条件 ]

运行语句:

DELETE FROM SPJ.dbo.SWHERE SNO = 'S2';
DELETE FROM SPJ.dbo.SPJWHERE SNO = 'S2';

结果:

在这里插入图片描述


结束


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

相关文章

二 DeepinV20版本安装

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

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

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

Deepin安装NVIDIA显卡驱动

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

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

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

Deepin重装Win10

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

【Deepin】 Deepin 系统安装教程

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

国产操作系统Deepin的安装

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

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

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

Deepin 20版 安装教程(Vmware)

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

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

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

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

WindowsDeepin双系统的安装&#xff08;win11deepin20.7.1&#xff09; 目录 [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双系统安装

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

win10下安装deepin双系统教程

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

深度操作系统deepin下载与安装教程-系统安装

前往深度社区&#xff08;deepin.org&#xff09;&#xff0c;下载deepin最新的镜像文件 下载Ventoy启动盘制作工具 插入U盘后安装Ventoy制作多系统启动U盘 安装完成后将deepin镜像文件拷贝到Ventoy多系统启动U盘 插入用Ventoy制作的deepin启动盘 按电源开机键之后狂按F12&…

Linux(Deepin)如何安装NVIDIA显卡驱动(deepin-Linux)

Windows系统中我们知道&#xff0c;装一个Windows下的NVIDIA驱动是多么容易&#xff0c;然而&#xff0c;在Linux下如何安装NVIDIA驱动是一件多么“快乐”的事。。。 1、驱动下载 首先进入NVIDIA官网下载Linux的闭源驱动&#xff1a;NVIDIA官网驱动下载 找到对应显卡的驱动&a…

win10PC上安装deepin深度Linux系统简易教程

今天突然刷到deepin系统的新闻&#xff0c;心血来潮&#xff0c;自己电脑上安装一个&#xff0c;说干就干&#xff0c;总共分这么几个步骤&#xff1a; 1、在win10建立磁盘分区&#xff0c;用于后面步骤 &#xff08;1&#xff09;右击<我的电脑>&#xff0c;点击管理 …

Deepin安装教程

安装教程 制作&#xff35;盘安装盘&#xff0c;优先使用deepin提供工具进行制作&#xff1a;下载地址deepin-boot-maker。支持的系统包括Windows&#xff0c;linux&#xff0c;还有MacOS。其中linux下的安装包&#xff0c;目前官方未提供&#xff0c;可能需要自己编译。如果本…

Deepin 深度操作系统安装教程

简介 深度操作系统(deepin)是一个致力于为全球用户提供美观易用、安全稳定服务的Linux发行版&#xff0c;同时也一直是排名最高的来自中国团队研发的Linux发行版&#xff0c;下面我们开始从下载镜像到安装系统一步步进行讲解。 系统下载 Deepin Desktop 20.3 AMD64 系统安装…

deepin,windows10双系统安装教程

注意:我的电脑是在win10系统后安装的deepin系统。安装系统有风险&#xff0c;请备份好win10系统数据后安装。 分区可以使用DG分区助手&#xff0c;将deepin单独安装在一个盘&#xff0c;大小自己设置&#xff0c;我的是50G. 1.打开deepin官网https://www.deepin.org/zh/mirro…

deepin系统安装教程(详细)

deepin系统安装步骤 1. 首先在开源镜像站下载iso镜像 网易云镜像地址&#xff1a;(最新版20Bate) http://uni.mirrors.163.com/deepin-cd/20/deepin-desktop-community-1003-amd64.iso 2. 创建虚拟机 (1)打开VMware&#xff0c;新建虚拟机 (2)选择自定义 (3)下一步 (4)…