SQL增删改操作实例分析

SQL增删改操作实例分析

插入记录

SQL增删改操作实例分析

SQL1 插入记录(一)

表exam_record结构
SQL增删改操作实例分析

 题目描述牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。该题最后会通过执行SELECT uid, exam_id, start_time, submit_time, score FROM 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; 答案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);

SQL增删改操作实例分析

SQL2 插入记录(二)

表exam_record结构
SQL增删改操作实例分析

 题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录,结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。后台会通过执行"SELECT * FROM exam_record_before_2021;"语句来对比结果建表语句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); 答案INSERT INTO exam_record_before_2021SELECT NULL,uid, exam_id, start_time, submit_time, scoreFROM exam_recordWHERE submit_time < '2021-01-01 00:00:00';

SQL增删改操作实例分析

SQL3 插入记录(三)

试题信息表examination_info结构
SQL增删改操作实例分析

 题目描述现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info,不管该ID试卷是否存在,都要插入成功,请尝试插入它。后台会通过执行 SELECT exam_id,tag,difficulty,duration,release_time FROM 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, '算法', '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'); 答案replace into examination_info(id,exam_id,tag,difficulty,duration,release_time)values(null,9003,'SQL','hard',90,'2021-01-01 00:00:00');

SQL增删改操作实例分析

2 更新记录

SQL4 更新记录(一)

现有一张试卷信息表examination_info,表结构如下图所示:
SQL增删改操作实例分析

 题目描述请把examination_info表中tag为PYTHON的tag字段全部修改为Python。后台会通过执行'SELECT exam_id,tag,difficulty,duration,release_time FROM 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'); 答案UPDATE examination_infoset tag ='Python' WHERE tag='PYTHON';

SQL增删改操作实例分析

SQL5 更新记录(二)

作答记录表exam_record表结构
SQL增删改操作实例分析

 题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,submit_time为 完成时间请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,即:将完成时间改为'2099-01-01 00:00:00',分数改为0。 建表语句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); 答案UPDATE exam_recordset submit_time='2099-01-01 00:00:00',    score=0WHERE start_time<'2021-09-01' and submit_time is null;

SQL增删改操作实例分析

3 删除记录

SQL6 删除记录(一)

作答记录表exam_record表结构,start_time是试卷开始时间,submit_time 是交卷,即结束时间
SQL增删改操作实例分析

 题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间submit_time 是交卷,即结束时间请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;后台会执行您的SQL,然后通过 SELECT * FROM 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;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); 答案delete from exam_recordwhere timestampdiff(minute,start_time,submit_time) < 5 and score < 60;

SQL增删改操作实例分析

SQL7 删除记录(二)

作答记录表exam_record结构如下:
SQL增删改操作实例分析

 题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间submit_time 是交卷时间,即结束时间,如果未完成的话,则为空请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间较早的3条记录。后台会通过 SELECT * FROM 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;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),(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:05:01', 58),(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:06:58', 60),(1002, 9002, '2021-06-02 19:01:01', null, null),(1003, 9001, '2021-09-05 19:01:01', null, null),(1003, 9001, '2021-09-05 19:01:01', null, null),(1003, 9002, '2021-09-09 07:01:02', null, null); 答案delete from exam_recordwhere timestampdiff(minute, start_time, submit_time) < 5or submit_time is nullorder by start_timelimit 3;

SQL增删改操作实例分析

SQL8 删除记录(三)

试卷作答记录表exam_record表结构
SQL增删改操作实例分析

 题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,请删除exam_record表中所有记录,并重置自增主键。后台会通过SELECT table_rows, auto_increment FROM information_schema.tables WHERE table_name='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;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); 答案TRUNCATE table  exam_record;

SQL增删改操作实例分析

感谢各位的阅读,以上就是“SQL增删操作实例分析”的内容了,经过本文的学习后,相信大家对SQL增删改操作实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章标题:SQL增删改操作实例分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/27733

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月21日 上午12:10
下一篇 2022年9月21日 上午12:11

相关推荐

  • HTML的p标签可不可以不用align

    HTML中的p标签可以不用align属性;因为该属性在“HTML 4.01”中已经被废弃,在HTML5中已经不支持该属性了,可以使用css进行替代该属性,该属性用于规定段落中文本的对齐方式。 本教程操作环境:windows10系统、HTML5版本、Dell G3电脑。 HTML的p标签可以不用ali…

    2022年9月2日
    16400
  • Swift的Mirror反射怎么使用

    元类型与.self AnyObject 在Swift开发中,我们经常会使用AnyObject来代表任意类的实例、类的类型、以及仅类遵守的协议。 代表任意类的实例、类的类型 class LGTeacher { var age = 18}var t = LGTeacher()var t1: AnyObj…

    2022年9月24日
    36100
  • jquery如何获取元素有几个子元素

    在jquery中,可以利用children()方法配合length属性来获取元素有几个子元素;children()方法可以返回被选元素的所有子元素,length属性可以获取包含jquery对象中元素的数目,语法为“$(指定元素).children().length;”。 本文操作环境:windows…

    2022年9月10日
    55100
  • Redis集群与扩展知识点分析

    Redis的高可用 1.为什么要高可用 防止单点故障,造成整个集群不可用 实现高可用通常的做法是将数据库复制多个副本以部署在不同的服务器上,其中一台挂了也可以继续提供服务 Redis实现高可用有三种部署模式:主从模式,哨兵模式,集群模式 2.主从模式 主节点负责读写操作 从节点只负责读操作 从节点的…

    2022年9月15日
    17400
  • 如何进行移动app安全评估检测技术分析

    由于现今的网络技术日益发达,安卓 APP 的安全也有很多隐患,这些都需要我们不断地去注意,从而提高其安全性。人们基于系统程序、系统数据、基础业务的安全性以及应用程序出现的漏洞这几个方面,来不断地完善并且构成一个更加安全、稳定、完整的移动 APP 监测系统来确保移动 APP 的安全性,其将作为“恶意伤…

    2022年9月15日
    34300
  • 如何解决1045无法登录mysql服务器

    解决方法:1、找到“my.ini”系统配置文件,把“skip-grant-tables”放在“port=****”下面;2、如果放在C盘里,那么需要编辑权限,并保存修改;3、打开MySQL数据库之前先重启服务,打开cmd命令提示符,直接输入mysql,回车打开MySQL数据库即可。 本教程操作环境:…

    2022年9月6日
    31800
  • SQL查询怎么给表起别名

    可以通过空格或者as给表起别名 但是注意如果操作的数据库是Oracle的话,只能使用空格,as不符合Oracle的语法。 举个栗子 简单查询中使用别名 select *from student swhere s.id = ’10’; 在简单的查询中使用别名,一般没有特别需要注意的地方,要做的操作少 …

    2022年9月8日
    25300
  • windows中剪贴板的含义是什么

    windows中剪贴板本质上是内存中的一块存储区域;剪贴板是windows系统一段可连续的、可随存放信息的大小而变化的内存空间,用来临时存放交换信息,内置在windows并且使用系统的内部资源RAM,或虚拟内存来临时保存剪切和复制的信息,可以存放的信息种类多种多样。 本教程操作环境:windows1…

    2022年9月15日
    19000
  • 如何进行Linux恶意软件SkidMap分析

    挖掘加密货币恶意软件仍然是一个普遍的威胁。网络罪犯也越来越多地探索新的平台和方法来进一步利用挖矿恶意软件——从移动设备、Unix和类Unix系统到服务器和云环境。 攻击者不断提升恶意软件抵御检测的能力。例如,将恶意软件与看门狗组件捆绑在一起,以确保非法的加密货币挖掘活动在受感染的机器中持续存在,或者…

    2022年9月20日
    25700
  • transform在CSS中的含义是什么

    在CSS中,transform的意思为改变、变形,主要用于设置元素的形状改变,实现元素的2D或3D转换;该属性可以配合属性值(转换函数)来对将元素进行旋转rotate、扭曲skew、缩放scale、移动translate以及矩阵变形matrix。 本教程操作环境:windows7系统、CSS3&am…

    2022年9月22日
    27700
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部