前言
本文主要记录SQL删除操作,drop()/truncate()/delete()的相关笔记
1. 删除表
1.1 drop
清除数据并且销毁表,是一种数据库定义语言(DDL Data Definition Language), 执行后不能撤销,被删除表格的关系,索引,权限等等都会被永久删除。
drop table if exists test1;
代码如下(示例):
CREATE TABLE test1
(id smallint(5) primary key not null,
first varchar(45) not null,
date_time date not null)
drop table if exists test1;
select * from test1
输出:
SQL_ERROR_INFO: "Table 'test1' doesn't exist"
1.2 truncate
只清除数据,保留表结构,列,权限,索引,视图,关系等等,相当于清零数据,是一种数据库定义语言(DDL Data Definition Language),执行后不能撤销。
1.3 delete
删除(符合某些条件的)数据,是一种数据操纵语言(DML Data Manipulation Language),执行后可以撤销。
2. 删除表中满足特定条件的行
delete from titles_test where condition
3. 删除表中部分记录
存在一个表table1,有两列数据id1,list2,现需要只保留表中各个list2值对应id1最小的数据行,其他都去除。
id1 | list2 |
---|---|
1 | a |
2 | b |
3 | a |
操作后只剩
id1 | list2 |
---|---|
1 | a |
2 | b |
delete t1 from table1 t1,table1 t2 where t1.list2=t2.list2 and t1.id>t2.id