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 语句

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2018 简单教程 twle.cn All Rights Reserved.