实验3 SQL的复杂多表查询以及视图

article/2025/11/6 5:41:36

第1关 查询所有“红色”的15公斤及以上的零件名

任务描述
查询所有“红色”的15公斤及以上的零件名

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT PNAME
FROM P
WHERE COLOR='红' 
AND WEIGHT>15;

第2关 查询工程名称中含有“厂”字的工程明细

任务描述
查询工程名称中含有“厂”字的工程明细

相关知识
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
J表如下图:
在这里插入图片描述
现已构建J表,结构信息如下:
在这里插入图片描述

SELECT *
FROM J
WHERE JNAME like "%厂"

第3关 求各颜色零件的平均重量

任务描述
求各颜色零件的平均重量

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT COLOR,AVG(P.WEIGHT)
FROM P
GROUP BY P.COLOR

第4关 求北京和天津供应商的总个数

任务描述
求北京和天津供应商的总个数

相关知识
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:
在这里插入图片描述
现已构建S表,结构信息如下:
在这里插入图片描述

SELECT CITY,COUNT(*)
FROM S
WHERE S.CITY='北京'OR S.CITY='天津'
GROUP BY CITY;

第5关 求各供应商供应的零件总数

任务描述
求各供应商供应的零件总数(SUM_QTY),结果按SUM_QTY降序排序。

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT SNO,SUM(QTY) AS SUM_QTY
FROM SPJ
GROUP BY SNO 
ORDER BY SUM(QTY) DESC;

第6关 求各供应商供应给各工程的零件总数

任务描述
求各供应商供应给各工程的零件总数(SUM_QTY),结果先按供应商代码(SNO)降序排序,再按工程项目代码(JNO)降序排序。

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT SNO,JNO,SUM(QTY) AS SUM_QTY
FROM SPJ
GROUP BY SNO,JNO
ORDER BY SNO DESC,JNO DESC;

第7关 求重量大于所有零件平均重量的零件名称

任务描述
求重量大于所有零件平均重量的零件名称

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT PNAME
FROM P
WHERE WEIGHT>(
SELECT AVG(WEIGHT)
FROM P)

第8关 查询供应了1000个以上零件的供应商名称

任务描述
查询供应了1000个以上零件的供应商名称,查询结果按供应商名称降序排序。

相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:
在这里插入图片描述
现已构建S表,结构信息如下:
在这里插入图片描述
2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT SNAME
FROM S
WHERE SNO IN(SELECT SNOFROM SPJGROUP BY QTY HAVING SUM(QTY)>1000
)GROUP BY SNAME DESC

第9关 统计P表中颜色为蓝色的零件个数,并指定该查询列的名称为“蓝色零件数”

任务描述
统计P表中颜色为蓝色的零件个数,并指定该查询列的名称为“蓝色零件数”

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT COUNT(PNO)'蓝色零件数'
FROM P
WHERE P.COLOR='蓝'

第10关 查询P表中各零件的编号,名称及重量按85%计算后的信息,其中重量按85%计算后的查询列名改为“零件净重”

任务描述
查询P表中各零件的编号,名称及重量按85%计算后的信息,其中重量按85%计算后的查询列名改为“零件净重”

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT PNO,PNAME,WEIGHT*0.85 AS'零件净重'
FROM P

第11关 查询 S表STATUS值大于20且小于50,或SNAME字段值的第一个字为“精”或第三个字为“益”或“民”的供应

任务描述
查询 SSTATUS值大于20且小于50,或SNAME字段值的第一个字为“精”或第三个字为“益”或“民”的供应商信息

相关知识
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:
在这里插入图片描述
现已构建S表,结构信息如下:
在这里插入图片描述

SELECT *
FROM S
WHERE (STATUS>20 AND STATUS<50) 
OR (SNAME like'精%') OR (SNAME='__益' or SNAME='__民') 

第12关 将SPJ表按QTY值降序排列,再找出SPJ表中前6条记录(用limit 6)

任务描述
SPJ表按QTY值降序排列,再找出SPJ表中前6条记录(用limit 6)

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT *
FROM SPJ
ORDER BY QTY DESC
LIMIT 6

第13关 找出供应零件总数量不低于1000的供应商号码,及每个供应商供应的总数量,并且结果按总数量降序排列
任务描述
找出供应零件总数量不低于1000的供应商号码,及每个供应商供应的总数量,并且结果按总数量降序排列

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT SNO,SUM(QTY) AS SUM_QTY
FROM SPJ
GROUP BY SNO
HAVING SUM(QTY)>=1000
ORDER BY SUM(QTY)DESC

第14关 查询这样的工程:供给该工程的零件P1的平均供应量,大于其中一种供给工程J1的零件的最大供应量

任务描述
找出供应零件总数量不低于1000的供应商号码,及每个供应商供应的总数量,并且结果按总数量降序排列

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT JNO
FROM SPJ
WHERE PNO='P1'
GROUP BY JNO
HAVING AVG(QTY)>(SELECT MAX(QTY)FROM SPJWHERE JNO='J1'
)

第15关 基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id

任务描述
查询这样的工程:供给该工程的零件P1的平均供应量,大于其中一种供给工程J1的零件的最大供应量

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

CREATE VIEW avg_s(id,m) as SELECT user_id,
avg(memory) FROM solution GROUP BY user_id;
SELECT user_id,problem_id 
FROM solution,avg_s
where solution.user_id=avg_s.id 
AND solution.memory>avg_s.m

第16关 用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

任务描述
ANY/ALL实现查询2019级选手(user_id4位为2019)满足比2020级其中一个选手注册时间(reg_time)早即可的选手信息
相关知识
users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

SELECT * 
FROM users 
WHERE user_id like'2019%' 
AND reg_time<any(SELECT reg_time FROM users WHERE user_id LIKE '2020%'
);

第17关 用聚集查询实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

任务描述
用聚集查询实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间(reg_time)早即可的选手信息

相关知识
users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

SELECT * 
FROM users 
WHERE user_id like'2019%' 
AND reg_time<any(SELECT reg_time FROM users WHERE user_id LIKE '2020%'
);

第18关 用ANY/ALL实现查询2019级选手所有比2020级选手注册时间都早的选手信息

任务描述
ANY/ALL实现查询2019级选手所有比2020级选手注册时间都早的选手信息

相关知识
users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

SELECT * 
FROM users 
WHERE user_id like'2019%' 
AND reg_time<ALL(SELECT reg_time FROM users WHERE user_id LIKE '2020%'
);

第19关 用聚集查询实现查询2019级选手所有比2020级选手注册时间都早的选手信息

任务描述
聚集查询实现查询2019级选手所有比2020级选手注册时间都早的选手信息

相关知识 users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

SELECT * 
FROM users 
WHERE user_id like'2019%' 
AND reg_time<ALL(SELECT reg_time FROM users WHERE user_id LIKE '2020%'
)

第20关 用 EXISTS 实现查询至少参与过"202002020217"选手参与过的所有比赛的选手信息

任务描述
EXISTS 实现查询至少参与过"202002020217"选手参与过的所有比赛的选手信息,contest_id不为NULL

相关知识
1、users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述
2、solution为选手提交的题目解答
solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT users.*
FROM users
WHERE not EXISTS(SELECT *FROM solution s1WHERE s1.user_id='202002020217' AND s1.contest_id is not NULL AND not exists(SELECT *FROM solution s2WHERE s1.contest_id=s2.contest_id AND users.user_id=s2.user_id)
);

第21关 请为三建工程项目建立一个供应情况的视图V_SPQ,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)

任务描述
请为三建工程项目建立一个供应情况的视图V_SPQ,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)

相关知识
1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
J表如下图:
在这里插入图片描述
现已构建J表,结构信息如下:
在这里插入图片描述
2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

CREATE VIEW V_SPQ(SNO,PNO,QTY)
AS SELECT SNO,PNO,QTY 
FROM SPJ
WHERE SPJ.JNO='J1';

第22关 从视图V_SPQ找出三建工程项目使用的各种零件代码及其数量

任务描述
从视图V_SPQ找出三建工程项目使用的各种零件代码及其数量(SUM_QTY),结果按SUM_QTY降序排序。

相关知识
三建工程项目视图V_SPQ由供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)组成。 视图V_SPQ如下图:
在这里插入图片描述
现已构建视图V_SPQ,结构信息如下:
在这里插入图片描述

SELECT PNO,SUM(QTY) AS SUM_QTY 
FROM V_SPQ
GROUP BY PNO
ORDER BY SUM(QTY) DESC;

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

相关文章

【系统分析师之路】第十五章 复盘数据库系统(关系数据库应用)

【系统分析师之路】第十五章 复盘数据库系统&#xff08;关系数据库应用&#xff09; 复盘数据库系统—关系数据库应用 【系统分析师之路】第十五章 复盘数据库系统&#xff08;关系数据库应用&#xff09;前言部分 历年真题考点分析1&#xff09;考点分析2&#xff09;重要知识…

数据库系统概论练习3

一、填空题 能够唯一标识实体的属性或属性组称为____实体的码______。如果两个关系没有公共属性&#xff0c;则其自然联接操作与____笛卡尔积_____操作等价。SQL中聚合函数“COUNT&#xff08;*&#xff09;”的功能是___统计元组个数________。关系模式如果为1NF&#xff0c;则…

数据库第七周作业——第三章课后习题

3.有两个关系S&#xff08;A,B,C,D&#xff09;和T&#xff08;C,D,E,F&#xff09;,写出与下列查询等价的SQL表达式&#xff1a; (1&#xff09;σ A10(S&#xff09; SELECT * FROM S WHERE A10;(2&#xff09;π A , B ( S ) SELECT A,B FROM S;(3&#xff09;S ⋈ T SEL…

第三章作业【数据库原理】

第二章作业【数据库原理】 前言推荐第三章作业第3章第1题简答题第3章第2题&#xff08;关系代数->SQL代码&#xff09;第3章第3题&#xff08;创建SPJ数据库中的四张表&#xff09;模拟数据第3章第4题&#xff08;SPJ数据库上完成查询&#xff09;第3章第5题&#xff08;SPJ…

设有一个工程供应数据库系统,包括如下四个关系模式:S(Sno,Sname, Status,City) ;P(Pno,Pname,Color ,Weight);J(Jno,Jname, Ci

设有一个工程供应数据库系统&#xff0c;包括如下四个关系模式&#xff1a; S(Sno&#xff0c;Sname&#xff0c; Status&#xff0c;City) &#xff1b; P(Pno&#xff0c;Pname&#xff0c;Color &#xff0c;Weight)&#xff1b; J(Jno&#xff0c;Jname&#xff0c; City) …

高通WLAN框架学习(17)-- NIO和PNO

本章详细介绍了preferred network offload (PNO)扫描概述、流、模式和配置文件。 18.1 PNO扫描概述 WLAN STA在通过AP模组连接AP之前,需要偶尔对环境进行扫描。 在WLAN请求程序中对扫描结果进行解析和处理,以确定是否至少有一个目标(附近)AP在附近。 为了偶尔发出扫描,应用…

Wi-Fi PNO扫描流程(Android P)

简介&#xff1a;当手机灭屏情况下&#xff0c;有保存网络时&#xff0c;若已连接&#xff0c;不扫描&#xff0c;否则&#xff0c;PNO扫描&#xff0c;即只扫描已保存的网络。最小间隔min20s&#xff0c;最大间隔max20s*360s PNO 即Preferred Network Offload&#xff0c;用于…

[RK3288][Android6.0] WiFi之PNO功能了解

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 概念: PNO 即Preferred Network Offload,用于系统在休眠的时候连接WiFi 此功能是在Android3.1加入的 缺陷: 在使用PNO时,有潜在泄露个人隐私的风险。这里没明白,意思是说PNO会发送之前的连接过的网络给AP,然…

二值化的方法

1.二值化 图像二值化的目的是最大限度的将图像中感兴趣部分保留下来&#xff0c;在很多情况下&#xff0c;也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。在这些庞大的图像二值化分类方法中&#xff0c;基于直方图的全局二值算法占有了绝对的市场份额&…

OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)

1. 学习目标 理解图像的分类&#xff0c;不同类型的图像的区别&#xff1b;对图像进行二值化处理&#xff0c;对【 cv.threshold 】函数的理解。 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类&#xff0c;可以分为二值图像、灰度图像和彩色图像。 二值图像&…

python 图像二值化处理

python 图像二值化处理 import os from PIL import Image import shutilfile_path ./5-crack919/mask/ save_path ./5-crack919/mask01/ if not os.path.exists(save_path):os.makedirs(save_path) ###二值化 for filename in os.listdir(file_path):print(filename)img …

图像处理之二值化图像

图像二值化就是将图像上的像素点的灰度值设置为0或255&#xff0c;也就是将整个图像呈现出明显的黑白效果。将所有灰度大于或等于阈值的像素被判定为属于特定物体&#xff0c;其灰度值为255表示&#xff0c;否则这些像素点被排除在物体区域以外&#xff0c;灰度值为0&#xff0…

二值化之阈值处理

写于开头的废话&#xff1a;哒哒哒.......这应该是马蹄的声音&#xff01;我在告诉你&#xff0c;我又来了&#xff01;不得不说的还是自己的悲伤&#xff0c;经营了那么久的CSDN居然说关就给我关了&#xff0c;过去的还是没法过去&#xff0c;我始终不能从失去的痛苦之中走出来…

图像处理之二值化

图像处理之二值化 二值化方式 二值化算法 二值化方式 二值化方式分为五种&#xff1a; THRESH_BINARY&#xff1a;将大于某一个阈值的变成最大值&#xff0c;其他为0 THRESH_BINARY_INV&#xff1a;和THRESH_BINARY恰好相反 THRESH_TRUNC&#xff1a; trunc就是截断的意思&…

二值化方法

一、全局阈值法 1.固定阈值方法 该方法是对于输入图像中的所有像素点统一使用同一个固定阈值。其基本思想如下: 其中&#xff0c;T为全局阈值。 缺点:很难为不同的输入图像确定最佳阈值。 2.Otsu算法 Otsu算法又称最大类间方差法 先明确两个概念: (1)均值 (2)方差 图像的阈…

图像处理一之-摄像头二值化处理-(什么是二值化)

图像二值化 binary image 什么是二值化&#xff1a; 二值化是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值(阈值)的像素灰度设为灰度极大值(255)&#xff0c;把小于这个值的像素灰度设为灰度极小值&#xff08;0&#xff09;&#…

C#多线程详解(一) Thread.Join()的详解

什么是进程&#xff1f; 当一个程序开始运行时&#xff0c;它就是一个进程&#xff0c;进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。 什么是线程&#xff1f; 线程是程序中的一个执行流&#xff0c;每个线程都有自己的专有寄存器…

1.java的协程_虚拟线程

盼过了春天盼秋天&#xff0c;从2017年到今天五年了&#xff0c;终于盼到loom转正了&#xff0c;当看到jdk19预览api的时候心情那个激动。。。期待已久的协程终于来临&#xff0c;再也不羡慕别人家的go孩子&#xff0c;咱终于可以理直气壮的说一句&#xff1a;咱也有&#xff0…

Kotlin协程到底是怎么切换线程的?你是否知晓?

好文推荐&#xff1a; 作者&#xff1a;RicardoMJiang 前言 之前对协程做了一个简单的介绍&#xff0c;回答了协程到底是什么的问题,感兴趣的同学可以了解下&#xff1a;【带着问题学】协程到底是什么? 通过上文&#xff0c;我们了解了以下内容 1.kotlin协程本质上对线程池的…

进程和线程、协程的区别

一、进程 进程是程序一次动态执行的过程&#xff0c;是程序运行的基本单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。进程占据独立的内存&#xff0c;所以上下文进程间的切换开销&#xff08;栈、寄存器、页表、文件句柄等&#xff09;比较…