第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)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建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)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建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字段值的第一个字为“精”或第三个字为“益”或“民”的供应
任务描述
查询S表STATUS值大于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)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建SPJ表,结构信息如下:
SELECT *
FROM SPJ
ORDER BY QTY DESC
LIMIT 6
第13关 找出供应零件总数量不低于1000的供应商号码,及每个供应商供应的总数量,并且结果按总数量降序排列
任务描述
找出供应零件总数量不低于1000的供应商号码,及每个供应商供应的总数量,并且结果按总数量降序排列相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建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)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建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)组成,标识某供应商
供应某种零件 给某工程项目的数量为QTY。SPJ表如下图:
现已构建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_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%'
);
第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;


































































