第1关:创建供应商表
S(SNO,SNAME,STATUS,CITY)
任务描述
创建供应商表S(SNO,SNAME,STATUS,CITY)
相关知识
供应商表S
由供应商代码(SNO
)、供应商姓名(SNAME
)、供应商状态(STATUS
)、供应商所在城市(CITY
)组成;
S
表如下图:
CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),`STATUS` INT,CITY CHAR(8)
); INSERT INTO S
VALUES('S1', '精益', 20, '天津'),('S2', '盛锡', 10, '北京'),('S3', '东方红', 30, '北京'),('S4', '丰泰盛', 20, '天津'),('S5', '为民', 30, '上海');
第2关:将P表中的所有红色零件的重量增加6
任务描述
将P
表中的所有红色零件的重量增加6
相关知识
零件表P
由零件代码(PNO
)、零件名(PNAME
)、颜色(COLOR
)、重量(WEIGHT
)组成;P
表如下图:
update P
set WEIGHT=WEIGHT+6
where COLOR='红';
第3关:把P表中全部红色零件的颜色改成蓝色
任务描述
把P
表中全部红色零件的颜色改成蓝色
相关知识 零件表P
由零件代码(PNO
)、零件名(PNAME
)、颜色(COLOR
)、重量(WEIGHT
)组成;P
表如下图:
现已构建P
表,结构信息如下:
update P
set COLOR='蓝'
where COLOR='红';
第4关:将SPJ表中由S5供给J4的零件P6改为由S3供应
任务描述
将SPJ
表中由S5
供给J4
的零件P6
改为由S3
供应
相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件给某工程项目的数量为QTY
。SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5'
AND JNO='J4'
AND PNO='P6';
第5关:将SPJ表中所有天津供应商的QTY属性值减少11(用子查询方式)
任务描述
将SPJ
表中所有天津供应商的QTY
属性值减少11
(用子查询方式)相关知识
1、供应商表S
由供应商代码(SNO
)、供应商姓名(SNAME
)、供应商状态(STATUS
)、供应商所在城市(CITY
)组成.
S
表如下图:
任务描述 将SPJ
表中所有天津供应商的QTY
属性值减少11
(用子查询方式)
相关知识
1、供应商表S
由供应商代码(SNO
)、供应商姓名(SNAME
)、供应商状态(STATUS
)、供应商所在城市(CITY
)组成.
S
表如下图:
现已构建
S
表,结构信息如下:
2、供应情况表
SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商 供应某种零件给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建
SPJ
表,结构信息如下:
UPDATE SPJ
set QTY=QTY-10
where '天津'=(select CITY from S where SPJ.SNO=S.SNO);
第6关:删除J表中的所有工程项目在天津的记录
任务描述
删除J
表中的所有工程项目在天津的记录
相关知识 工程项目表J由工程项目代码(JNO
)、工程项目名(JNAME
)、工程项目所在城市(CITY
)组成。
J
表如下图:
现已构建J
表,结构信息如下:
DELETE FROM J WHERE CITY= '天津';
第7关:从SPJ表中删除供应商号是S2的记录
任务描述
从SPJ
表中删除供应商号是S2
的记录相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
DELETE FROM SPJ WHERE Sno= 'S2';
第8关:从SPJ表中删除零件名称为螺丝刀的记录(用子查询方式)
任务描述
从SPJ
表中删除零件名称为螺丝刀的记录(用子查询方式)
DELETE FROM SPJ WHERE PNO in(SELECT PNO FROM P where PNAME= '螺丝刀');
第9关:删除P表中所有的记录
任务描述
删除P
表中所有的记录相关知识
零件表P
由零件代码(PNO
)、零件名(PNAME
)、颜色(COLOR
)、重量(WEIGHT
)组成;
P
表如下图:
现已构建P
表,结构信息如下:
DELETE FROM P;
第10关:请将(S2,J6,P4,200)插入供应情况关系表SPJ
任务描述
请将(S2
,J6
,P4
,200
)插入供应情况关系表SPJ
相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
INSERT INTO SPJ
VALUES('S2','P4','J6,200);
第11关:求供应工程J1零件的供应商号码SNO
任务描述
求供应工程J1
零件的供应商号码SNO
(注意去重复)
相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
SELECT DISTINCT SNO from SPJ where JNO = 'J1';
第12关:求供应工程J1零件P1的供应商号码SNO
任务描述
求供应工程J1
零件P1
的供应商号码SNO
相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
select SNO from SPJ where JNO ='J1' and PNO = 'P1';
第13关:找出所有供应商的姓名和所在城市
任务描述
找出所有供应商的姓名和所在城市相关知识
供应商表S
由供应商代码(SNO
)、供应商姓名(SNAME
)、供应商状态(STATUS
)、供应商所在城市(CITY
)组成.
S
表如下图:
现已构建S
表,结构信息如下:
SELECT SNAME,CITY FROM S;
第14关:找出所有零件的名称、颜色、重量
任务描述
找出所有零件的名称、颜色、重量相关知识
零件表P
由零件代码(PNO
)、零件名(PNAME
)、颜色(COLOR
)、重量(WEIGHT
)组成;
P
表如下图:
现已构建P
表,结构信息如下:
SELECT PNAME,COLOR,WEIGHT FROM P;
第15关:找出使用供应商S1所供应零件的工程号码
任务描述
找出使用供应商S1
所供应零件的工程号码相关知识
供应情况表SPJ
由供应商代码(SNO
)、零件代码(PNO
)、工程项目代码(JNO
)、供应数量(QTY
)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
。
SPJ
表如下图:
现已构建SPJ
表,结构信息如下:
SELECT DISTINCT JNO FROM SPJ WHERE SNO='S1';
第16关:在users表中新增一个用户,user_id为2019100904学号,name为’2019-物联网-李明’
任务描述
在users表中新增一个用户,user_id为2019100904学号,name为’2019-物联网-李明’相关知识
users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
insert into users(user_id,name) values ('2019100904','2019-物联网-李明');
第17关:在users表中更新用户 user_id为robot_2 的信息,name设为 ‘机器人二号’
任务描述
在users表中更新用户 user_id为robot_2 的信息,name设为 ‘机器人二号’
相关知识
users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
UPDATE users
set name='机器人二号'
where user_id='robot_2';
第18关:将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6
任务描述
将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6
相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
第18关: 将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6
任务描述
删除solution表中比赛contest_id 为1001的全部解答
相关知识 solution:选手提交的题目解答 solution表如下图(仅显示前几条):
UPDATE solution
set result=6
where problem_id=1003;
第19关:删除solution表中比赛contest_id 为1001的全部解答
任务描述
删除solution表中比赛contest_id 为1001的全部解答
相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
delete from solution where contest_id = 1001;
第20关:查询所有 contest 的 title 和 end_time
任务描述
查询所有 contest 的 title 和 end_time。
相关知识
contest为比赛信息表;
contest表如下图(仅显示前几条):
现已构建contest表,结构信息如下:
SELECT title, end_time FROM contest;
第21关:查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复
任务描述
查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复相关知识
solution选手提交的题目解答。 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
SELECT DISTINCT user_id from solution;
第22关:查询 end_time 晚于 ‘2020-11-21 17:30:00’ 的 contest_id
任务描述
查询 end_time 晚于 ‘2020-11-21 17:30:00’ 的 contest_id
相关知识
contest为比赛信息表; contest表如下图(仅显示前几条):
现已构建contest表,结构信息如下:
SELECT contest_id from contest where end_time > '2020-11-21 17:30:00';
第23关:查询 problem_id 在 1005~1009 之间的 problem 的 title
任务描述
查询 problem_id 在 1005~1009 之间的 problem 的 title相关知识
problem为题目表; problem表如下图(仅显示前几条):
现已构建problem表,结构信息如下:
SELECT title from problem where problem_id between 1005 and 1009;
第24关:查询 language 不在 0、1、3 中的 solution 的 code_length
任务描述
查询 language 不在 0、1、3 中的 solution 的 code_length相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
SELECT code_length from solution where language !=0 and language !=1 and language !=3;
第25关:查询2018级选手信息(user_id 为学号的用户前4位为年级)
任务描述
查询2018级选手信息(user_id 为学号的用户前4位为年级)相关知识
users为选手信息表;
users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
SELECT * from users where user_id>=20180000000 and user_id<=20189999999
第26关:查询’生医’专业选手信息(name 中有 ‘生医’ 的选手)
任务描述
查询’生医’专业选手信息(name 中有 ‘生医’ 的选手)相关知识
users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
select * from users where name like '%生医%';
第27关:查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)
任务描述
查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
select solution_id,in_date from solution where contest_id is NULL;
第28关:查询 result 为 6 且 problem_id大于1010 的 solution_id与language
任务描述
查询 result 为 6 且 problem_id大于1010 的 solution_id与language相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
select solution_id ,language from solution where result=6 and problem_id > 1010;
第29关:查询提交过solution的选手人数
任务描述
查询提交过solution的选手人数相关知识
solution:
选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
SELECT COUNT(DISTINCT solution.user_id) FROM solution;
第30关:查询耗内存(memory)最多的solution的内存消耗大小与 solution_id
任务描述
查询提交过solution的选手人数相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
select memory,solution_id from solution
where memory in(select max(distinct memory) from solution
);
第31关:查询每个题目的提交数
任务描述
查询每个题目的提交数相关知识 solution:选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
SELECT distinct problem_id, COUNT(solution.problem_id) FROM solution GROUP BY problem_id HAVING COUNT(*) > 0;
第32关:查询提交数大于20的题目的题号
任务描述
查询提交数大于20的题目的题号相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
SELECT distinct problem_id FROM solution where problem_id in (SELECT problem_id FROM solution GROUP BY problem_id HAVING COUNT(problem_id)>20);
第33关:查找所有problem_id 为1001 的解答或 contest_id 为空的解答
任务描述
查找所有problem_id 为1001 的解答或 contest_id 为空的解答相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
select * from solution where problem_id=1001 or contest_id is null;