【头歌系统数据库实验】实验5 SQL的多表查询-1
目录
第1关:等值连接:求S表和J表城市相同的等值连接(列顺序还是按照S、J表)
第2关:查询供应情况,并显示供应商、零件和工程三者的名称
第3关:找出上海厂商供应的所有零件号码
第4关:找出使用上海产的零件的工程名称
第5关:找出没有使用天津产的零件的工程号码
第6关:求供应工程J1零件为红色的供应商号码SNO
第7关:求没有使用天津供应商生产的红色零件的工程号 JNO
第8关:查询所有“红色”的15公斤及以上的零件名
第9关:查询工程名称中含有“厂”字的工程明细
如果你认为对你有帮助的话,不妨点赞收藏关注一下吧,爱你么么哒😘❤️❤️❤️
第1关:等值连接:求S表和J表城市相同的等值连接(列顺序还是按照S、J表)
任务描述
等值连接:求S表和J表城市相同的等值连接(列顺序还是按照S、J表)
相关知识
1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:
现已构建J表,结构信息如下:
2、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
select S.*,J.*
from S,J
where S.CITY=J.CITY;
########## End ##########
第2关:查询供应情况,并显示供应商、零件和工程三者的名称
任务描述
查询供应情况,并显示供应商、零件和工程三者的名称
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
2、零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
现已构建P表,结构信息如下:
3、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:
现已构建J表,结构信息如下:
4、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT SNAME,PNAME,JNAME,QTY
FROM S,P,J,SPJ
WHERE S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND J.JNO=SPJ.JNO;
########## End ##########
第3关:找出上海厂商供应的所有零件号码
任务描述
找出上海厂商供应的所有零件号码(注意去重)
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT PNO
FROM S,SPJ
WHERE S.CITY='上海' AND S.SNO=SPJ.SNO;
########## End ##########
第4关:找出使用上海产的零件的工程名称
任务描述
找出使用上海产的零件的工程名称,结果按工程名称降序排序。
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
2、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:
现已构建J表,结构信息如下:
3、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT JNAME
FROM S,SPJ,J
WHERE SPJ.sno=S.sno AND J.jno=SPJ.jno AND S.city='上海';
########## End ##########
第5关:找出没有使用天津产的零件的工程号码
任务描述
找出没有使用天津产的零件的工程号码
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT JNO
FROM SPJ
WHERE JNO NOT IN(
SELECT JNO
FROM SPJ
WHERE SNO IN(
SELECT SNO
FROM S
WHERE CITY='天津'
)
);
########## End ##########
第6关:求供应工程J1零件为红色的供应商号码SNO
任务描述
求供应工程J1零件为红色的供应商号码SNO
相关知识
1、零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
现已构建P表,结构信息如下:
2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT SNO
FROM SPJ
WHERE JNO='J1' AND PNO IN(
SELECT PNO
FROM P
WHERE COLOR='红'
);
########## End ##########
第7关:求没有使用天津供应商生产的红色零件的工程号 JNO
任务描述
求没有使用天津供应商生产的红色零件的工程号 JNO,(JNO注意去重)
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:
现已构建S表,结构信息如下:
2、零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
现已构建P表,结构信息如下:
3、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:
现已构建SPJ表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN(
SELECT JNO
FROM SPJ
WHERE PNO IN(
SELECT PNO
FROM P
WHERE COLOR='红') AND SNO IN(
SELECT SNO
FROM S
WHERE CITY='天津'
)
);
########## End ##########
第8关:查询所有“红色”的15公斤及以上的零件名
任务描述
查询所有“红色”的15公斤及以上的零件名
相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
现已构建P表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT PNAME
FROM P
WHERE WEIGHT>=15 AND COLOR='红';
########## End ##########
第9关:查询工程名称中含有“厂”字的工程明细
任务描述
查询工程名称中含有“厂”字的工程明细
相关知识
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:
现已构建J表,结构信息如下:
开始你的任务吧,祝你成功!
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT *
FROM J
WHERE JNAME LIKE '%厂';
########## End ##########