插入,更新,删除
1.插入记录的方式汇总:
- 普通插入(全字段):INSERT INTO table_name VALUES (value1, value2, ...)
-
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);
- 普通插入(限定字段):INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
- 多条一次性插入:INSERT INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...
-
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);
- 从另一个表导入:INSERT INTO table_name SELECT * FROM table_name2 [WHERE key=value]
- 带更新的插入:REPLACE INTO table_name VALUES (value1, value2, ...) (注意这种原理是检测到主键或唯一性索引键重复就删除原记录后重新插入)
2.更新
1.删除相关的整条记录,可结合where过滤
delete from 表名 where ....
2.直接替换数据
replace into 表名 (字段名)values (替换内容)
直接替换不管存不存在。
3.替换单列、多列
update 表名 set 字段1=‘替换内容1’,字段2=‘替换内容3’ where ....
UPDATE examination_info SET tag = "Python" WHERE tag = "PYTHON";
还可以这样
UPDATE examination_info SET tag = REPLACE(tag, "PYTHON", "Python") WHERE tag = "PYTHON";
可以扩展成子串替换
UPDATE examination_info SET tag = REPLACE(tag, "PYTHON", "Python") WHERE tag LIKE "%PYTHON%";
update exam_record set submit_time = '2099-01-01 00:00:00',score = 0 where start_time < '2021-09-01 00:00:00' and score is null;
3.删除
删除记录的方式汇总:
- 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ]
- 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_name
时间差:
- TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
- SECOND 秒
- MINUTE 分钟(返回秒数差除以60的整数部分)
- HOUR 小时(返回秒数差除以3600的整数部分)
- DAY 天数(返回秒数差除以3600*24的整数部分)
- MONTH 月数
- YEAR 年数
删除时间差分钟小于5且分数小于60
delete from exam_record where timestampdiff(minute,start_time,submit_time) < 5 and score < 60;
删除表中全部信息
truncate table exam_record;

浙公网安备 33010602011771号