這篇文章為大家帶來了關於SQL的相關知識,其中主要整理了增刪改操作的相關問題,包括了插入記錄、更新記錄、刪除記錄等等內容,下面一起來看一下,希望對大家有幫助。
推薦學習:《SQL教學》
##SQL1 插入記錄(一)
#
题目描述 牛客后台会记录每个用户的试卷作答记录到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);
##SQL2 插入記錄(二)
表exam_record結構题目描述 现有一张试卷作答记录表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_2021 SELECT NULL,uid, exam_id, start_time, submit_time, score FROM exam_record WHERE submit_time
##試題資訊表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(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');
##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(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_info set tag ='Python' WHERE tag='PYTHON';
## SQL5 更新記錄(二)
题目描述 现有一张试卷作答记录表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_record set submit_time='2099-01-01 00:00:00', score=0 WHERE start_time<h3><strong></strong></h3><h4>3 刪除記錄<strong></strong> </h4><p> SQL6 刪除記錄(一)<br><img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-11.png" alt="詳細介紹SQL增刪改操作"></p> 作答記錄表exam_record表結構,start_time是試卷開始時間,submit_time 是交卷,即結束時間<p><img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-12.png" alt="詳細介紹SQL增刪改操作"></p> #<pre class="brush:php;toolbar:false"> 题目描述 现有一张试卷作答记录表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_record where timestampdiff(minute,start_time,submit_time) <h4></h4><p><br> SQL7 刪除記錄(二)<img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-13.png" alt="詳細介紹SQL增刪改操作"></p> 作答記錄表exam_record結構如下:<p><img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-14.png" alt="詳細介紹SQL增刪改操作">##</p><pre class="brush:php;toolbar:false"> 题目描述 现有一张试卷作答记录表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_record where timestampdiff(minute, start_time, submit_time) <h4><strong></strong></h4># SQL8 刪除記錄(三)<p><br><img src="https://img.php.cn/upload/article/000/000/067/dcc4130a1c2e33c0f640eafbce50cd30-15.png" alt="詳細介紹SQL增刪改操作"> 試卷作答記錄表exam_record表結構</p><p><img src="https://img.php.cn/upload/article/000/000/067/dcc4130a1c2e33c0f640eafbce50cd30-16.png" alt="詳細介紹SQL增刪改操作"></p><pre class="brush:php;toolbar:false"> 题目描述 现有一张试卷作答记录表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增刪改操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!