一、插入记录
1、插入多条记录
自己的答案:
INSERT INTO exam_record(uid, exam_id, start_time, submit_time, score)
VALUES (1001,9001,'2021-09-01 22:11:12','2021-09-01 23:01:12',90),
(1002,9002,'2021-09-04 07:01:02',null,null);
参考答案:
插入时,置空,可以自增【无需指定列名】
【间隔50分钟,可以直接使用+ INTERVAL 50 minute,无需手动计算
INSERT INTO exam_record
VALUES (null,1001,9001,'2021-09-01 22:11:12','2021-09-01 22:11:12' + INTERVAL 50 minute,90),
(null,1002,9002,'2021-09-04 07:01:02',null,null);
2、数据备份导入新表【查到的数据插入】
插入的是具体数据还是查出来的数据【用不同的符号表示】
INSERT INTO exam_record_before_2021(uid,exam_id,start_time,submit_time,score) -- VALUE用于填具体值,无具体值不用加
SELECT uid,exam_id,start_time,submit_time,score FROM exam_record
WHERE submit_time < '2021-01-01 00:00:00'
3、插入id可能存在的记录
方式:使用REPLACE代替INSERT
REPLACE INTO examination_info
VALUES(null,9003,'SQL','hard',90,'2021-01-01 00:00:00');
二、更新记录
1、更新某一字段
UPDATE examination_info SET tag='Python' WHERE tag='PYTHON'
2、更新多个属性【用逗号】
注意:判空条件为IS NULL,日期为<
UPDATE exam_record
SET submit_time='2099-01-01 00:00:00', score=0
WHERE submit_time IS NULL AND start_time<'2021-09-01 00:00:00'
三、删除记录
1、删除时间间隔小于5分钟
思路:timestampdiff后大前小
DELETE FROM exam_record
WHERE timestampdiff(minute,start_time,submit_time)<5 AND score<60
2、删除开始作答时间最早的3条记录[LIMIT]
DELETE FROM exam_record
WHERE submit_time IS NULL OR TIMESTAMPDIFF(minute,start_time,submit_time)<5
ORDER BY start_time LIMIT 3
3、删除后重置自增主键
清空数据并重建表结构
TRUNCATE exam_record
作者:哥们要飞