SQLite Update 语句

感谢 SQLite 我们的员工记录用起来太方便了,但现在出现了一个小小的问题,某个员工调了一次薪水,涨工资了,现在要修改记录了,要怎么做呢?

SQLite 提供了 UPDATE 语句用于修改表中已有的记录。

请使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。

语法

带有 WHERE 子句的 UPDATE 查询的基本语法如下:

根据条件更新记录

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

更新所有的记录

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN

可以使用 AND 或 OR 运算符来结合 N 个数量的条件。

最佳实战

UPDATE 语句无论何时都要附带 WHERE 子句,哪怕是更新所有的记录也要附加 WHERE 1=1;

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE 1 = 1;

范例

假设 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

1. 将 id 为 6 的客户地址更新为 "Texas"

sqlite> UPDATE company SET address = 'Texas' WHERE id = 6;
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          Texas       45000.0
7           James       24          Houston     10000.0

将所有用户的的 address 和 salary 更新为 "Texax",20000.00

在这种更新要求下,可以不需要附带 WHERE 语句,但建议还是附带 WHERE 1=1

sqlite> UPDATE COMPANY SET address = 'Texas', salary = 20000.00 WHERE 1=1 ;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          Texas       20000.0
2           Allen       25          Texas       20000.0
3           Teddy       23          Texas       20000.0
4           Mark        25          Texas       20000.0
5           David       27          Texas       20000.0
6           Kim         22          Texas       20000.0
7           James       24          Texas       20000.0

如果你要复原所有的记录,可以用 DELETE 命令删除所有的数据,然后按照 SQLite Insert 语句 重新添加

你也可以直接下载我们的范例库 SQLite 范例数据库

SQLite 基础教程

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

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

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