实验4 MySQL单表查询

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

在这里插入图片描述

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设为 ‘机器人二号’

在这里插入图片描述

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

在这里插入图片描述

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的全部解答

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

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT title, end_time FROM contest;
########## End ##########

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

在这里插入图片描述

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT user_id FROM solution;
########## End ##########

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

在这里插入图片描述

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

在这里插入图片描述

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT title FROM problem WHERE problem_id BETWEEN 1005 AND 1009;
########## End ##########

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

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

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

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM users WHERE user_id LIKE '2018%';
########## End ##########

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

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM users WHERE name LIKE '___生医%';
########## End ##########

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

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

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT solution_id, language FROM solution WHERE result = 6 AND problem_id > 1010;
########## End ##########

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

在这里插入图片描述

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT COUNT(DISTINCT user_id) FROM solution;
########## End ##########

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

在这里插入图片描述

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT memory, solution_id FROM solution WHERE memory IN (
    SELECT MAX(memory) FROM solution
);
########## End ##########

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

在这里插入图片描述

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

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

在这里插入图片描述

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT problem_id FROM solution GROUP BY problem_id HAVING COUNT(*) > 20;
########## End ##########

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

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
SELECT * FROM solution WHERE problem_id = 1001 OR contest_id IS NULL;
########## End ##########
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值