当前位置: 首页 > news >正文

【SQL刷题】秋招刷爆SQL题之插入数据

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

牛客刷题:牛客刷题

前言

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

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

一.刷题

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

第一题

题目

牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:

  • 用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;
  • 用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。

试卷作答记录表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;
TRUNCATE exam_record;

输出:

1001|9001|2021-09-01 22:11:12|2021-09-01 23:01:12|90
1002|9002|2021-09-04 07:01:02|None|None

分析

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

答案

insert into exam_record VALUES
(
    null,1001,9001, "2021-09-01 22:11:12","2021-09-01 23:01:12",90
),
(
    null,1002,9002, "2021-09-04 07:01:02",null,null
)

第二题

题目

现有一张试卷作答记录表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;
CREATE TABLE IF NOT EXISTS exam_record_before_2021 (
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;
TRUNCATE exam_record;
TRUNCATE exam_record_before_2021;
INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2020-01-01 09:00:01', null, null),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:21:01', 70),
(1001, 9002, '2020-09-02 09:00:01', null, null),
(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:30:01', 81),
(1002, 9002, '2021-09-02 12:01:01', null, null);

输出:

1|1001|9002|2020-01-02 09:01:01|2020-01-02 09:21:01|70

分析

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

答案

INSERT INTO
  exam_record_before_2021(uid, exam_id, start_time, submit_time, score)
SELECT
  uid,
  exam_id,
  start_time,
  submit_time,
  score
FROM
  exam_record
WHERE
  submit_time < '2021-01-01';

第三题

题目

现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info(其表结构如下图),不管该ID试卷是否存在,都要插入成功,请尝试插入它。

示例

输入:

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, '算法', 'easy', 60, '2020-01-01 10:00:00'),
(9003, 'SQL', 'medium', 60, '2020-01-02 10:00:00'),
(9004, '算法', 'hard', 80, '2020-01-01 10:00:00');

输出:

9001|SQL|hard|60|2020-01-01 10:00:00
9002|算法|easy|60|2020-01-01 10:00:00
9004|算法|hard|80|2020-01-01 10:00:00
9003|SQL|hard|90|2021-01-01 00:00:00

分析

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

答案

DELETE FROM examination_info
WHERE exam_id=9003;
INSERT INTO examination_info
VALUES(NULL,9003, 'SQL','hard', 90, '2021-01-01 00:00:00')

二.小结

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

相关文章:

  • 园区智慧化转型新篇章:解码智慧技术如何助力园区实现精细化管理,提升运营效率
  • 浏览器打不开DevTools?
  • 什么是全局污染?如何避免全局污染
  • 数据的正态性检验
  • 政安晨:【深度学习神经网络基础】(十三)—— 卷积神经网络
  • redis故障中出现的缓存击穿、缓存穿透、缓存雪崩?
  • 网络工程师笔记2
  • ctfshow——反序列化
  • 坚持刷题|二叉树展开为链表
  • pve安装ceph
  • IP 电话
  • 在Pycharm中运行Django项目如何指定运行的端口
  • 刷爆leetcode第九期 0020
  • Colmap安装与实践
  • 【苹果iMessage相册推信息推】 重要用于安装背面必要安装的watchman
  • 艾德克斯IT6512D可编程直流电源中文介绍
  • 使用机器学习做DGA域名识别
  • Day06-尚品汇-排序操作上
  • Linux进程替换(exec系列)
  • 史上最全软件测试工程师常见的面试题总结(百度、oppo、中软国际、华为)
  • 艾美捷抗人IL-2单抗MT8G10即用型解决方案
  • 头歌-信息安全技术-实训04 数据库SQL注入漏洞
  • C# 中的多线程
  • 建立自己的kindle书库
  • JavaWeb笔记(五)后端(Thymeleaf)(Tomcat类加载机制)(编写图书管理系统)
  • 提升网站流量和排名的方法,SEO优化要这样做
  • kubernets集群升级
  • 使用HTML+CSS+JS模拟比赛晋级的动画功能
  • 【数据结构Java版】LinkedList与链表之单链表
  • python list转str类型,str转list类型
  • 基于java校园德育活动预约和评分管理系统的设计与实现-计算机毕业设计源码+LW文档
  • 在 ESP 开发板上开发 UI 不再复杂