跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

การแก้ไขข้อมูล (UPDATE)

บทความนี้สอนการแก้ไขข้อมูลในตาราง MySQL ด้วยคำสั่ง `UPDATE` ซึ่งประกอบด้วยการระบุตาราง, คอลัมน์ที่ต้องการแก้ไขพร้อมค่าใหม่ และเงื่อนไข `WHERE` เพื่อเลือกแถวที่ต...

การแก้ไขข้อมูล (UPDATE) ใน MySQL

ในบทเรียนก่อนหน้านี้ เราได้เรียนรู้เกี่ยวกับการอ่านข้อมูลจากฐานข้อมูลด้วยคำสั่ง SELECT และการใช้ WHERE Clause เพื่อกรองข้อมูลที่เราต้องการ ในบทนี้ เราจะมาเรียนรู้วิธีการแก้ไขข้อมูลที่มีอยู่ในตารางแล้ว ด้วยคำสั่ง UPDATE

คำสั่ง UPDATE ใช้สำหรับเปลี่ยนแปลงค่าในคอลัมน์ของแถว (row) ที่ตรงตามเงื่อนไขที่เรากำหนดไว้

รูปแบบคำสั่ง UPDATE

รูปแบบพื้นฐานของคำสั่ง UPDATE คือ:

UPDATE table_name
SET column_name1 = value1, column_name2 = value2, ...
WHERE condition;

โดย:

  • UPDATE table_name: ระบุตารางที่เราต้องการแก้ไขข้อมูล
  • SET column_name1 = value1, column_name2 = value2, ...: ระบุคอลัมน์ที่เราต้องการแก้ไข และค่าใหม่ที่ต้องการกำหนดให้กับคอลัมน์นั้น
  • WHERE condition: ระบุเงื่อนไขที่ใช้ในการเลือกแถวที่เราต้องการแก้ไข (สำคัญมาก! หากไม่ใส่ จะแก้ไขทุกแถวในตาราง)

ตัวอย่างการใช้งาน UPDATE

สมมติว่าเรามีตารางชื่อ customers ที่มีโครงสร้างดังนี้:

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    city VARCHAR(50)
);

INSERT INTO customers (customer_id, first_name, last_name, email, city) VALUES
(1, 'John', 'Doe', 'john.doe@example.com', 'New York'),
(2, 'Jane', 'Smith', 'jane.smith@example.com', 'Los Angeles'),
(3, 'Peter', 'Jones', 'peter.jones@example.com', 'Chicago');

ตัวอย่างที่ 1: เปลี่ยนชื่อเมืองของ John Doe

ถ้าเราต้องการเปลี่ยนชื่อเมืองของ John Doe จาก 'New York' เป็น 'Brooklyn' เราสามารถใช้คำสั่ง UPDATE ดังนี้:

UPDATE customers
SET city = 'Brooklyn'
WHERE customer_id = 1;

คำสั่งนี้จะทำการเปลี่ยนค่าในคอลัมน์ city เป็น 'Brooklyn' เฉพาะแถวที่ customer_id เท่ากับ 1 เท่านั้น

หลังจากรันคำสั่งนี้แล้ว หากเรา SELECT ข้อมูลจากตาราง customers เราจะเห็นว่าข้อมูลของ John Doe ได้ถูกแก้ไขแล้ว:

SELECT * FROM customers;

ผลลัพธ์:

+-------------+------------+-----------+-------------------------+----------+
| customer_id | first_name | last_name | email                   | city     |
+-------------+------------+-----------+-------------------------+----------+
|           1 | John       | Doe       | john.doe@example.com    | Brooklyn |
|           2 | Jane       | Smith     | jane.smith@example.com  | Los Angeles|
|           3 | Peter      | Jones     | peter.jones@example.com | Chicago  |
+-------------+------------+-----------+-------------------------+----------+

ตัวอย่างที่ 2: เปลี่ยนอีเมลและชื่อเมืองของ Jane Smith

เราสามารถแก้ไขหลายคอลัมน์พร้อมกันได้ โดยการคั่นด้วยเครื่องหมายคอมม่า (,) ตัวอย่างเช่น ถ้าเราต้องการเปลี่ยนอีเมลของ Jane Smith เป็น 'jane.s@example.com' และชื่อเมืองเป็น 'San Francisco' เราสามารถใช้คำสั่ง UPDATE ดังนี้:

UPDATE customers
SET email = 'jane.s@example.com', city = 'San Francisco'
WHERE customer_id = 2;

หลังจากรันคำสั่งนี้แล้ว หากเรา SELECT ข้อมูลจากตาราง customers เราจะเห็นว่าข้อมูลของ Jane Smith ได้ถูกแก้ไขแล้ว:

SELECT * FROM customers;

ผลลัพธ์:

+-------------+------------+-----------+-----------------------+---------------+
| customer_id | first_name | last_name | email                 | city            |
+-------------+------------+-----------+-----------------------+---------------+
|           1 | John       | Doe       | john.doe@example.com  | Brooklyn        |
|           2 | Jane       | Smith     | jane.s@example.com    | San Francisco   |
|           3 | Peter      | Jones     | peter.jones@example.com | Chicago         |
+-------------+------------+-----------+-----------------------+---------------+

ตัวอย่างที่ 3: เปลี่ยนชื่อเมืองของทุกคนที่อาศัยอยู่ใน 'Chicago' เป็น 'Naperville'

เราสามารถใช้ WHERE Clause ที่ซับซ้อนขึ้นได้ ตัวอย่างเช่น ถ้าเราต้องการเปลี่ยนชื่อเมืองของทุกคนที่อาศัยอยู่ใน 'Chicago' เป็น 'Naperville' เราสามารถใช้คำสั่ง UPDATE ดังนี้:

UPDATE customers
SET city = 'Naperville'
WHERE city = 'Chicago';

หลังจากรันคำสั่งนี้แล้ว หากเรา SELECT ข้อมูลจากตาราง customers เราจะเห็นว่าข้อมูลของ Peter Jones ได้ถูกแก้ไขแล้ว:

SELECT * FROM customers;

ผลลัพธ์:

+-------------+------------+-----------+-----------------------+---------------+
| customer_id | first_name | last_name | email                 | city            |
+-------------+------------+-----------+-----------------------+---------------+
|           1 | John       | Doe       | john.doe@example.com  | Brooklyn        |
|           2 | Jane       | Smith     | jane.s@example.com    | San Francisco   |
|           3 | Peter      | Jones     | peter.jones@example.com | Naperville      |
+-------------+------------+-----------+-----------------------+---------------+

ข้อควรระวังในการใช้ UPDATE

สิ่งสำคัญที่สุดในการใช้คำสั่ง UPDATE คือการระบุ WHERE Clause เสมอ หากไม่ระบุ WHERE Clause คำสั่ง UPDATE จะทำการแก้ไขข้อมูลในทุกแถวของตาราง ซึ่งอาจทำให้ข้อมูลเสียหายได้

ตัวอย่างเช่น หากเราเผลอพิมพ์คำสั่งดังนี้:

UPDATE customers
SET city = 'Unknown';

คำสั่งนี้จะทำการเปลี่ยนชื่อเมืองของลูกค้าทุกคนในตาราง customers เป็น 'Unknown' ซึ่งอาจไม่ใช่สิ่งที่เราต้องการ

สรุป

ในบทนี้ เราได้เรียนรู้วิธีการแก้ไขข้อมูลในตาราง MySQL ด้วยคำสั่ง UPDATE เราได้เรียนรู้รูปแบบคำสั่งพื้นฐาน วิธีการแก้ไขหลายคอลัมน์พร้อมกัน และความสำคัญของการใช้ WHERE Clause เพื่อป้องกันการแก้ไขข้อมูลที่ไม่ต้องการ ในบทเรียนถัดไป เราจะเรียนรู้วิธีการลบข้อมูลออกจากตารางด้วยคำสั่ง DELETE

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务