English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحديث البيانات باستخدام SQL (جملة UPDATE)

في هذا الدرس، ستتعلم كيفية استخدام SQL لتحديث السجلات في جدول قاعدة البيانات.

تحديث بيانات الجدول

في الفصول السابقة تعلمنا كيفية تحديث بيانات الجدول بناءً على شروط مختلفةإدراج البياناتو كيفية إدخال البيانات في جدول قاعدة البياناتاختيار بيانات الاستعلام. في هذا الدرس، سنتعلم كيفية تنفيذ مهمة أكثر أهمية، وهي تحديث السجلات الموجودة في جدول قاعدة البيانات.

النحو

استخدام جملة UPDATE لتحديث البيانات الموجودة في الجدول.

UPDATE table_name SET column1_name = value1, column2_name = value2,... WHERE condition;

في هذا المكان،column1_name,column2_name،... هو اسم عمود أو حقل في جدول قاعدة البيانات الذي يجب تحديث قيمته. يمكنك أيضًا استخدام العمليات الحسابية OR و AND التي تعلمتها في الفصل السابقدمج عدة شرط.

تحذير:جملة WHERE في جملة UPDATE تحدد السجلات التي يجب تحديثها. إذا تم تمرير جملة 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字段并设置一个新值,其中employee id(即emp_id)等于3。

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 的现有员工的salarydept_id字段。

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                          |
+--------+------------------+------------+--------+---------+