更新记录
Update 语句
Update 语句用于修改表中的数据。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
1、现有一张试卷信息表examination_info,表结构如上图所示: 请把examination_info表中tag为PYTHON的tag字段全部修改为Python。
update examination_info
set tag="Python"
where tag="PYTHON"
** 2、现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表:作答记录表exam_record:请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,即:将完成时间改为'2099-01-01 00:00:00',分数改为0。**
update exam_record set submit_time = "2099-01-01 00:00:00",score =0 where start_time <"2021-09-01" and score is null
- 只改2021年9月1日之前开始作答的记录;
- 只改未完成的记录;
- 改为被动完成:完成时间改为'2099-01-01 00:00:00',分数改为0
删除记录
删除记录的方式汇总:
- 根据条件删除: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 年数
**1、请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录; **
delete from exam_record
where timestampdiff(minute,start_time,submit_time)<5
and score<60
- 作答时间小于5分钟整的记录;
- 分数不及格(及格线为60分)的记录;
2、请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。
delete from exam_record
where submit_time is null
or timestampdiff(minute,start_time,submit_time)<5
order by start_time
limit 3
- 未完成作答的记录;
- 或作答时间小于5分钟整的记录;
- 开始作答时间最早的3条记录;
3、请删除exam_record表中所有记录,并重置自增主键。
#第一种方法
truncate exam_record
#第二种方法
DELETE FROM exam_record;
ALTER TABLE exam_record auto_increment=1;
- DROP TABLE 清除数据并且销毁表,是一种数据库定义语言(DDL Data Definition Language), 执行后不能撤销,被删除表格的关系,索引,权限等等都会被永久删除。
- TRUNCATE TABLE 只清除数据,保留表结构,列,权限,索引,视图,关系等等,相当于清零数据,是一种数据库定义语言(DDL Data Definition Language),执行后不能撤销。
- DELETE TABLE 删除(符合某些条件的)数据,是一种数据操纵语言(DML Data Manipulation Language),执行后可以撤销。
- 运行速度一般DROP最快,DELETE最慢,但是DELETE最安全。
版权归原作者 你隔壁的小王 所有, 如有侵权,请联系我们删除。