SQL增删改操作实例分析

网友投稿 505 2023-11-23

SQL增删改操作实例分析

这篇文章主要讲解了“SQL增删改操作实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL增删改操作实例分析”吧!

SQL增删改操作实例分析

插入记录

SQL1 插入记录(一)

表exam_record结构

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

表exam_record结构

题目描述 现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录, 由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。 我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录, 结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。 后台会通过执行"SELECT * FROMexam_record_before_2021;"语句来对比结果 建表语句drop table if EXISTS exam_record; CREATE TABLE IF NOT EXISTS exam_record ( id int PRIMARY KEYAUTO_INCREMENTCOMMENT 自增ID, uid int NOT NULL COMMENT 用户ID, exam_id int NOT NULL COMMENT 试卷ID, start_time datetimeNOT 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 intPRIMARYKEY 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 提交时间, scoretinyint COMMENT 得分 )CHARACTER SET utf8 COLLATE utf8_general_ci; TRUNCATE exam_record; TRUNCATEexam_record_before_2021;INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES (100190012020-01-01 09:00:01nullnull), (100190022020-01-02 09:01:012020-01-02 09:21:0170), (100190022020-09-02 09:00:01nullnull), (100290012021-05-02 10:01:012021-05-02 10:30:0181), (100290022021-09-02 12:01:01nullnull);  答案 INSERT INTOexam_record_before_2021SELECT NULL,uid, exam_id, start_time, submit_time, score FROM exam_record WHERE submit_time < 2021-01-01 00:00:00; SQL3 插入记录(三)

试题信息表examination_info结构

题目描述 现在有一套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(32COMMENT 类别标签, difficultyvarchar(8COMMENT 难度, duration int NOT NULL COMMENT 时长(分钟数), release_time datetime COMMENT 发布时间 )CHARACTER SET utf8 COLLATE utf8_bin; TRUNCATE examination_info; INSERT INTOexamination_info(exam_id,tag,difficulty,duration,release_time) VALUES (9001SQLhard602020-01-01 10:00:00), (9002算法easy602020-01-01 10:00:00), (9003SQLmedium602020-01-02 10:00:00), (9004算法hard802020-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);2 更新记录SQL4 更新记录(一)

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

 题目描述 请把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(32COMMENT 类别标签, difficultyvarchar(8COMMENT 难度, 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 (9001SQLhard602020-01-01 10:00:00), (9002pythoneasy602020-01-01 10:00:00), (9003Pythonmedium802020-01-01 10:00:00), (9004PYTHONhard802020-01-01 10:00:00);  答案 UPDATE examination_info set tag =Python WHERE tag=PYTHON; SQL5 更新记录(二)

作答记录表exam_record表结构

题目描述 现有一张试卷作答记录表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 datetimeNOT 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 (100190012020-01-02 09:01:012020-01-02 09:21:0180), (100190022021-09-01 09:01:012021-09-01 09:21:0190), (100290012021-08-02 19:01:01nullnull), (100290022021-09-05 19:01:012021-09-05 19:40:0189), (100390012021-09-02 12:01:01nullnull), (100390022021-09-01 12:01:01nullnull);  答案 UPDATE exam_record set submit_time=2099-01-01 00:00:00,     score=0 WHERE start_time<2021-09-01 and submit_time is null3 删除记录 SQL6 删除记录(一)

作答记录表exam_record表结构,start_time是试卷开始时间,submit_time 是交卷,即结束时间

题目描述 现有一张试卷作答记录表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 datetimeNOT NULL COMMENT 开始时间, submit_time datetime COMMENT 提交时间, score tinyint COMMENT 得分 )CHARACTER SET utf8 COLLATE utf8_general_ci; TRUNCATE exam_record; INSERT INTOexam_record(uid, exam_id, start_time, submit_time, score)VALUES (100190012020-01-01 22:11:122020-01-01 23:16:1250), (100190022020-01-02 09:01:012020-01-02 09:06:0058), (100290012021-05-02 10:01:012021-05-02 10:05:5860), (100290022021-06-02 19:01:012021-06-02 19:05:0154), (100390012021-09-05 19:01:012021-09-05 19:40:0149), (100390012021-09-05 19:01:012021-09-05 19:15:0170), (100390012021-09-06 19:01:012021-09-06 19:05:0180), (100390022021-09-09 07:01:02nullnull);  答案 delete from exam_record where timestampdiff(minute,start_time,submit_time) < 5  and score < 60;SQL7 删除记录(二)

作答记录表exam_record结构如下:

题目描述 现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间 submit_time 是交卷时间,即结束时间,如果未完成的话,则为空 请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。 后台会通过SELECT * FROM exam_record 语句来对比结果。  建表语句 drop table if EXISTSexam_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 COLLATEutf8_general_ci;TRUNCATE exam_record; INSERT INTOexam_record(uid, exam_id, start_time, submit_time, score)VALUES (100190012020-01-01 22:11:122020-01-01 23:16:1250), (100190022020-01-02 09:01:012020-01-02 09:06:0058), (100190022020-01-02 09:01:012020-01-02 09:05:0158), (100290012021-05-02 10:01:012021-05-02 10:06:5860), (100290022021-06-02 19:01:01null,null), (100390012021-09-05 19:01:01nullnull), (100390012021-09-05 19:01:01nullnull), (100390022021-09-09 07:01:02nullnull);  答案 delete from exam_record where timestampdiff(minute, start_time, submit_time) < 5 or submit_time is null order by start_time limit 3SQL8 删除记录(三)

试卷作答记录表exam_record表结构

题目描述 现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录, 请删除exam_record表中所有记录,并重置自增主键。 后台会通过SELECT table_rows, auto_increment FROM information_schema.tables WHEREtable_name=exam_record语句来对比输出结果  建表语句 drop table if EXISTS exam_record; CREATE TABLE IF NOT EXISTSexam_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 (100190012020-01-01 22:11:12,2020-01-01 23:16:1250), (100190022020-01-02 09:01:012020-01-02 09:06:0058);  答案TRUNCATE table  exam_record;

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql hint的概念是什么
下一篇:MySQL的rollback实例分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~