超级机甲:源能觉醒 - 新版本资料库

SQLUPDATE语句

SQL UPDATE 语句

在本教程中,您将学习如何使用 SQL 更新数据库表中的记录。

更新表数据

在前面的章节中,我们学习了如何根据各种条件从数据库表中 insert data 以及 select data。 在本教程中,我们将学习执行一项更重要的任务,即更新数据库表中的现有记录。

语法

UPDATE 语句用于更新表中的现有数据。

UPDATE table_name

SET column1_name = value1, column2_name = value2,...

WHERE condition;

这里,column1_name, column2_name,... 是要更新其值的数据库表的列或字段的名称。 您也可以使用 AND 或 OR 运算符来进行 结合多个条件,这在前面的章节中已经学习过。

警告: UPDATE 语句中的WHERE 子句指定应该更新哪些记录。 如果省略 WHERE 子句,所有记录都将被更新。

让我们看看一些例子来展示它是如何工作的。

假设我们的数据库中有一个 employees 表,其中包含以下记录:

+--------+--------------+------------+--------+---------+

| emp_id | emp_name | hire_date | salary | dept_id |

+--------+--------------+------------+--------+---------+

| 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 |

| 2 | Tony Montana | 2002-07-15 | 6500 | 5 |

| 3 | Sarah Connor | 2005-10-18 | 8000 | 3 |

| 4 | Rick Deckard | 2007-01-03 | 7200 | 4 |

| 5 | Martin Blank | 2008-06-24 | 5600 | NULL |

+--------+--------------+------------+--------+---------+

更新单个列

以下 SQL 语句将更新 employees 表的 emp_name 字段并设置一个新值,其中员工 id 即 emp_id 等于 3。

示例Try this code »

UPDATE employees SET emp_name = 'Sarah Ann Connor'

WHERE emp_id = 3;

执行后,结果表将如下所示:

+--------+------------------+------------+--------+---------+

| emp_id | emp_name | hire_date | salary | dept_id |

+--------+------------------+------------+--------+---------+

| 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 |

| 2 | Tony Montana | 2002-07-15 | 6500 | 5 |

| 3 | Sarah Ann Connor | 2005-10-18 | 8000 | 3 |

| 4 | Rick Deckard | 2007-01-03 | 7200 | 4 |

| 5 | Martin Blank | 2008-06-24 | 5600 | NULL |

+--------+------------------+------------+--------+---------+

更新多列

同样,您可以使用逗号分隔的列名和值对列表更新多个列。 以下示例将更新 employees 表中 emp_id 为 5 的现有员工的 salary 和 dept_id 字段。

示例Try this code »

UPDATE employees

SET salary = 6000, dept_id = 2

WHERE emp_id = 5;

执行后,结果表将如下所示:

+--------+------------------+------------+--------+---------+

| emp_id | emp_name | hire_date | salary | dept_id |

+--------+------------------+------------+--------+---------+

| 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 |

| 2 | Tony Montana | 2002-07-15 | 6500 | 5 |

| 3 | Sarah Ann Connor | 2005-10-18 | 8000 | 3 |

| 4 | Rick Deckard | 2007-01-03 | 7200 | 4 |

| 5 | Martin Blank | 2008-06-24 | 6000 | 2 |

+--------+------------------+------------+--------+---------+

上一页

下一页

Advertisements