ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

การแก้ไขข้อมูล (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 รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์