SQLite Delete 语句
我们已经学会了如何添加和更新数据,但一个不小心,就加入了重复的记录,或者某些记录需要删除,我要怎么做呢?
SQLite 提供了 DELETE 语句用于删除表中已有的记录。
语法
带有 WHERE 子句的 DELETE 查询的基本语法如下:
删除所有记录
DELETE FROM table_name;
删除指定条件的记录
DELETE FROM table_name WHERE [condition];
可以使用 AND 或 OR 运算符来结合 N 个数量的条件
可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除
范例
假设 company 表有以下记录:
sqlite> SELECT * FROM company; id name age address salary ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
我们使用下面的 INSERT 语句在 company 表中额外添加两条记录
sqlite> INSERT INTO COMPANY VALUES (8, 'James', 44, 'Norway', 5000.00 ); sqlite> INSERT INTO COMPANY VALUES (9, 'James', 45, 'Texas', 5000.00 );
现在,我们的表就有了重复名称的记录
sqlite> SELECT * FROM company; id name age address salary ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 8 James 44 Norway 5000.0 9 James 45 Texas 5000.0
1. 删除 id 为 8 的 James
sqlite> DELETE FROM company WHERE ID = 8; sqlite> SELECT * FROM company; id name age address salary ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 9 James 45 Texas 5000.0
2. 删除所有记录
如果您想要从 company 表中删除所有记录,则不需要使用 WHERE 子句
sqlite> DELETE FROM company sqlite> SELECT * FROM company; sqlite>
现在,company 表中没有任何的记录,因为所有的记录已经通过 DELETE 语句删除
如果你要加回所有的记录,请看 SQLite Insert 语句