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 范例数据库