第1关 在users表中新增一个用户,user_id为2019100904学号,name为’2019-物联网-李明’

1
2
3
4
5
6
7
8
9
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
INSERT INTO users(user_id,name)
VALUES(2019100904,'2019-物联网-李明');

########## End ##########
#以下代码禁止删除
SELECT * FROM users WHERE users.user_id = '2019100904';

第2关 在users表中更新用户 user_id为robot_2 的信息,name设为 ‘机器人二号’

1
2
3
4
5
6
7
8
9
10
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
UPDATE users
SET name='机器人二号'
WHERE user_id='robot_2';

########## End ##########
#以下代码禁止删除
SELECT * FROM users WHERE users.user_id = 'robot_2';

第3关 将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6

1
2
3
4
5
6
7
8
9
10
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
UPDATE solution
SET result=6
WHERE problem_id=1003;

########## End ##########
#以下代码禁止删除
SELECT * FROM solution WHERE solution.problem_id = 1003;

第4关 删除solution表中比赛contest_id 为1001的全部解答

1
2
3
4
5
6
7
8
9
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
DELETE FROM solution
WHERE contest_id=1001;

########## End ##########
#以下代码禁止删除
SELECT * FROM solution WHERE solution.contest_id = 1001;

第5关 查询所有 contest 的 title 和 end_time

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT title,end_time
FROM contest;

########## End ##########

第6关 查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT user_id
FROM solution;

########## End ##########

第7关 查询 end_time 晚于 ‘2020-11-21 17:30:00’ 的 contest_id

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT contest_id FROM contest
WHERE end_time>'2020-11-21 17:30:00';

########## End ##########

第8关 查询 problem_id 在 1005~1009 之间的 problem 的 title

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT title FROM problem
WHERE problem_id>=1005 and problem_id<=1009;

########## End ##########

第9关 查询 language 不在 0、1、3 中的 solution 的 code_length

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT code_length FROM solution
WHERE language NOT IN (0,1,3)

########## End ##########

第10关 查询2018级选手信息(user_id 为学号的用户前4位为年级)

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM users
WHERE user_id LIKE '2018%'

########## End ##########

第11关 查询’生医’专业选手信息(name 中有 ‘生医’ 的选手)

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM users
WHERE name LIKE '%生医%';

########## End ##########

第12关 查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT solution_id,in_date FROM solution
WHERE contest_id is NULL;

########## End ##########

第13关 查询 result 为 6 且 problem_id大于1010 的 solution_id与language

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT solution_id,language FROM solution
WHERE result=6 and problem_id>1010;

########## End ##########

第14关 查询提交过solution的选手人数

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT COUNT(DISTINCT user_id)
FROM solution;

########## End ##########

第15关 查询耗内存(memory)最多的solution的内存消耗大小与 solution_id

1
2
3
4
5
6
7
8
9
10
11
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT memory,solution_id FROM solution
WHERE memory  IN
(
    SELECT MAX(memory)
    FROM solution
);

########## End ##########

第16关 查询每个题目的提交数

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT problem_id,COUNT(problem_id)
FROM solution
GROUP BY problem_id;
########## End ##########

第17关 查询提交数大于20的题目的题号

1
2
3
4
5
6
7
8
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT problem_id FROM solution
GROUP BY problem_id
HAVING COUNT(problem_id)>20;

########## End ##########

第18关 查找所有problem_id 为1001 的解答或contest_id 为空的解答

1
2
3
4
5
6
7
USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM solution
WHERE problem_id=1001 or contest_id is NULL;

########## End ##########