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

【SQL刷题】DAY22----增删改操作专项练习

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

牛客刷题:牛客刷题跳转链接

目录

前言

 一、组合查询

二、刷题

1.题目一

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

2.题目二

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

3.题目三

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

4.题目四

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

 三、小结


前言

给大家推荐一款比较好的刷题王站,马上秋招的小伙伴 快来冲起来,学起来,卷起来

 

一、刷题

1.题目一

(1)题目

题目:插入记录(一)
描述:

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

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

试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。

(2)题目难度

本题难易程度:中等

(3)示例

输入:

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

(4)代码

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)

(5)运行截图

2.题目二

(1)题目

题目:插入记录(二)

描述: 现有一张试卷作答记录表exam_record,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。

(2)题目难度

本题难易程度:简单

(3)示例

输入:

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

(4)代码

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';

(5)运行截图

3.题目三

(1)题目

题目:更新记录(一)

描述:请把examination_info表中tag为PYTHON的tag字段全部修改为Python。

(2)题目难度

本题难易程度:简单

(3)示例

输入:

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

(4)代码

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

(5)运行截图

4.题目四

(1)题目

题目:删除记录(一)
描述:请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录

(2)题目难度

本题难易程度:入门

(3)示例

输入:

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;
INSERT INTO exam_record(uid, exam_id, start_time, submit_time, score) VALUES
(1001, 9001, '2020-01-01 22:11:12', '2020-01-01 23:16:12', 50),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:06:00', 58),
(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:05:58', 60),
(1002, 9002, '2021-06-02 19:01:01', '2021-06-02 19:05:01', 54),
(1003, 9001, '2021-09-05 19:01:01', '2021-09-05 19:40:01', 49),
(1003, 9001, '2021-09-05 19:01:01', '2021-09-05 19:15:01', 70),
(1003, 9001, '2021-09-06 19:01:01', '2021-09-06 19:05:01', 80),
(1003, 9002, '2021-09-09 07:01:02', null, null);

输出:

1|1001|9001|2020-01-01 22:11:12|2020-01-01 23:16:12|50
3|1002|9001|2021-05-02 10:01:01|2021-05-02 10:05:58|60
5|1003|9001|2021-09-05 19:01:01|2021-09-05 19:40:01|49
6|1003|9001|2021-09-05 19:01:01|2021-09-05 19:15:01|70
7|1003|9001|2021-09-06 19:01:01|2021-09-06 19:05:01|80
8|1003|9002|2021-09-09 07:01:02|None|None

(4)代码

delete from exam_record
where TIMESTAMPDIFF(minute, start_time, submit_time) < 5 and score < 60

(5)运行截图

 二、小结

本篇文章为SQL刷题第22天

欢迎大家一起和博主来刷题0SQL刷题点击开始学习2

相关文章:

  • 真实场景下的安全专家各项技能详解
  • 为何以太坊合并很重要?
  • 【docker】使用docker安装宝塔面板
  • 【正点原子STM32连载】第四十一章 无线通信实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • C语言 哈希表的简单实现
  • 学习率和BatchSize对模型的影响
  • 小代码大智慧: FilenameUtils.getName 函数分析
  • 基于php理发店管理系统
  • Linux入门之使用 firewalld 防火墙
  • 【论文阅读】SABRE: Protecting Bitcoin against Routing Attacks
  • 【设计模式3_责任链、观察者】
  • .NET MVC之AOP
  • 机器学习基础
  • 浅谈报表测试
  • 第十一:Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!
  • [case10]使用RSQL实现端到端的动态查询
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Apache的基本使用
  • java小心机(3)| 浅析finalize()
  • JAVA之继承和多态
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Node项目之评分系统(二)- 数据库设计
  • Python 基础起步 (十) 什么叫函数?
  • Spring核心 Bean的高级装配
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • WebSocket使用
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 关于 Cirru Editor 存储格式
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前嗅ForeSpider教程:创建模板
  • linux 淘宝开源监控工具tsar
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #{}和${}的区别是什么 -- java面试
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (poj1.3.2)1791(构造法模拟)
  • (八)c52学习之旅-中断实验
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (转)视频码率,帧率和分辨率的联系与区别
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net mvc 获取url中controller和action
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .Net 路由处理厉害了
  • .net和php怎么连接,php和apache之间如何连接
  • @Autowired自动装配
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [AAuto]给百宝箱增加娱乐功能