【SQL刷题】秋招刷爆SQL题之更新数据

 博主昵称:跳楼梯企鹅
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;

牛客刷题:牛客刷题

前言

 首先,我作为今年大四的毕业生,今年的秋招太卷了,就业形势很难,很多同学秋招投了很多简历,都是石城大海,运气好的进了面试也是面试两轮就被刷下来了,博主是班上目前唯一一个找到心仪岗位,并且拿到了不错的薪资待遇的一个幸运儿,那么我是靠什么成功上岸的呢?

这里我就要给各位推荐一个网站对于刷题面试很友好----牛客网

一.刷题

我们刷题的目的主要还是学习,良性刷题,而且刷题其实总的来说,是对自己负责,所以希望各位小伙伴强迫自己刷下去,坚持就是胜利

第一题

题目

现有一张试卷信息表examination_info,表结构如下图所示:

  

示例

输入:
drop table if EXISTS examination_info;
CREATE TABLE IF NOT EXISTS examination_info (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
exam_id int UNIQUE NOT NULL COMMENT '试卷ID',
tag varchar(32) COMMENT '类别标签',
difficulty varchar(8) COMMENT '难度',
duration int NOT NULL COMMENT '时长',
release_time datetime COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;
TRUNCATE examination_info;
INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES
(9001, 'SQL', 'hard', 60, '2020-01-01 10:00:00'),
(9002, 'python', 'easy', 60, '2020-01-01 10:00:00'),
(9003, 'Python', 'medium', 80, '2020-01-01 10:00:00'),
(9004, 'PYTHON', 'hard', 80, '2020-01-01 10:00:00');

输出:
9001|SQL|hard|60|2020-01-01 10:00:00
9002|python|easy|60|2020-01-01 10:00:00
9003|Python|medium|80|2020-01-01 10:00:00
9004|Python|hard|80|2020-01-01 10:00:00

分析

首先我们需要表内有几个字段,按照字段顺序插入数据,数据库中最重要最基础的也就是增删改查,所以插入数据一定要看清楚字段和每个字段有没有显示,是否会出现插入后数据为空的情况。

答案

update examination_info set tag = 'Python' where tag = 'PYTHON'

第二题

题目

现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表:

作答记录表exam_record:

示例

输入:
drop table if EXISTS exam_record;
CREATE TABLE IF NOT EXISTS exam_record (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
uid int NOT NULL COMMENT '用户ID',
exam_id int NOT NULL COMMENT '试卷ID',
start_time datetime NOT NULL COMMENT '开始时间',
submit_time datetime COMMENT '提交时间',
score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2020-01-02 09:01:01', '2020-01-02 09:21:01', 80),
(1001, 9002, '2021-09-01 09:01:01', '2021-09-01 09:21:01', 90),
(1002, 9001, '2021-08-02 19:01:01', null, null),
(1002, 9002, '2021-09-05 19:01:01', '2021-09-05 19:40:01', 89),
(1003, 9001, '2021-09-02 12:01:01', null, null),
(1003, 9002, '2021-09-01 12:01:01', null, null);
复制
输出:
1001|9001|2020-01-02 09:01:01|2020-01-02 09:21:01|80
1001|9002|2021-09-01 09:01:01|2021-09-01 09:21:01|90
1002|9001|2021-08-02 19:01:01|2099-01-01 00:00:00|0
1002|9002|2021-09-05 19:01:01|2021-09-05 19:40:01|89
1003|9001|2021-09-02 12:01:01|None|None
1003|9002|2021-09-01 12:01:01|None|None

分析

首先我们需要表内有几个字段,按照字段顺序插入数据,数据库中最重要最基础的也就是增删改查,所以插入数据一定要看清楚字段和每个字段有没有显示,是否会出现插入后数据为空的情况。

答案

update
  exam_record
set
  score = 0,
  submit_time = "2099-01-01 00:00:00"
where
  submit_time is null
  and "2021-09-01" > date_format(start_time, "%Y-%m-%d");

二.小结

来和企鹅一起刷题吧,点击右边链接传送这里哦

猜你喜欢

转载自blog.csdn.net/weixin_50481708/article/details/127508274