Skip to main content

通过示例学习SQLite更新语句

SQLite更新语句简介

要更新表中的现有数据,可以使用SQLite update语句。下面说明了UPDATE语句的语法:

UPDATE table
SET column_1 = new_value_1,
column_2 = new_value_2
WHERE
search_condition
ORDER column_or_expression
LIMIT row_count OFFSET offset;

在这种语法中:

请注意,如果在LIMIT子句中使用负值,SQLite会假定没有限制,并更新满足前面WHERE子句中条件的所有行。

ORDER BY子句应始终与LIMIT子句一起指定要更新的行。否则,您将永远不知道哪一行将被实际更新;因为没有ORDER BY子句,表中的行顺序是未指定的。

SQLite更新语句示例

我们将使用示例数据库中的employees表来演示UPDATE语句。

以下SELECT语句从employees表中获取部分数据:

SELECT
employeeid,
firstname,
lastname,
title,
email
FROM
employees;

试试看

SQLite Update Table Example

1) 更新一列示例

假设简结婚了,她想把她的姓改成她丈夫的姓,即史密斯。在这种情况下,可以使用以下语句更新Jane的姓氏:

UPDATE employees
SET lastname = 'Smith'
WHERE employeeid = 3;

试试看

WHERE子句中的表达式确保我们只更新Jane的记录。我们将lastname列设置为文字字符串“Smith”。

要验证更新,请使用以下语句:

SELECT
employeeid,
firstname,
lastname,
title,
email
FROM
employees
WHERE
employeeid = 3;

试试看

SQLite Update One Column Example

2) 更新多列示例

假设Park Margaret位于多伦多,您想更改他的地址、城市和州信息。可以使用UPDATE语句更新多个列,如下所示:

UPDATE employees
SET city = 'Toronto',
state = 'ON',
postalcode = 'M5P 2N7'
WHERE
employeeid = 4;

试试看

要验证更新,请使用以下语句:

SELECT
employeeid,
firstname,
lastname,
state,
city,
PostalCode
FROM
employees
WHERE
employeeid = 4;

试试看

SQLite Update Multiple Columns Example

3) 更新ORDER BY和LIMIT子句示例

请注意,您需要使用SQLite_ENABLE_UPDATE_DELETE_LIMIT选项构建SQLite,以便使用可选的order BY和LIMIT子句执行UPDATE语句。

让我们在employees表中查看员工的电子邮件地址:

SELECT
employeeid,
firstname,
lastname,
email
FROM
employees;

试试看

SQLite Update Order By Limit

要更新employees表中的一行,可以使用LIMIT 1子句。为了确保更新按名字排序的第一行员工,可以添加ORDER by firstname子句。

因此,以下声明更新了安德鲁·亚当斯的电子邮件:

UPDATE employees
SET email = LOWER(
firstname || "." || lastname || "@chinookcorp.com"
)
ORDER BY
firstname
LIMIT 1;

试试看

SQLite Update Order By Limit Example

这封新邮件是名字dot(.)的组合,姓氏和后缀@chinookcorp。通用域名格式

函数的作用是:将电子邮件转换成小写。

4) 更新所有行示例

要更新employees表中的所有行,请跳过WHERE子句。例如,以下更新语句将所有员工的所有电子邮件地址更改为小写:

UPDATE employees
SET email = LOWER(
firstname || "." || lastname || "@chinookcorp.com"
);

试试看

SQLite Update all Rows Example

在本教程中,您学习了如何使用SQLite UPDATE语句更新表中的现有数据。

工具书类