MySQL การเปลี่ยนแปลงข้อมูลด้วยคำสั่ง UPDATE

UPDATE เป็นคำสั่ง SQL ที่ใช้สำหรับ แก้ไขข้อมูลในแถว (record) ของตารางที่มีอยู่แล้วในฐานข้อมูล โดยสามารถอัปเดตได้หนึ่งแถวหรือหลายแถวตามเงื่อนไขที่ระบุ

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

ตัวอย่าง

เปลี่ยนนามสกุลของนักแสดงที่ชื่อ ‘JENNIFER’ เป็น ‘CHAN’

SQL
UPDATE actor
SET last_name = 'CHAN'
WHERE first_name = 'JENNIFER';
  • UPDATE actor ระบุว่าต้องการอัปเดตข้อมูลในตาราง actor
  • SET last_name = 'CHAN' เปลี่ยนค่านามสกุล (last_name) ให้เป็น 'CHAN'
  • WHERE first_name = 'JENNIFER' แก้ไขเฉพาะแถวที่ first_name เป็น 'JENNIFER' เท่านั้น

ข้อควรระวัง: อย่าลืมใส่ WHERE เพราะถ้าลืมจะอัปเดตทุกแถวในตาราง

เปลี่ยนนามสกุล (last_name) เป็น ‘LEE’ สำหรับนักแสดงที่ชื่อ BOB และมี actor_id มากกว่า 100

SQL
UPDATE actor
SET last_name = 'LEE'
WHERE first_name = 'BOB'
  AND actor_id > 100;
  • แก้ไขเฉพาะแถวนักแสดงที่ชื่อ BOB และ actor_id มากกว่า 100 เท่านั้น
  • ใช้ AND เพื่อระบุเงื่อนไขหลายอย่างร่วมกัน

อัปเดต postal_code ในตาราง address เป็น ‘10110’ สำหรับที่อยู่ที่อยู่ในเมือง Athenai

SQL
UPDATE address a
JOIN city c ON a.city_id = c.city_id
SET a.postal_code = '10110'
WHERE c.city = 'Athenai';
  • ใช้ JOIN เชื่อมตาราง address และ city ด้วย city_id
  • อัปเดตคอลัมน์ postal_code ใน address สำหรับแถวที่เมือง (city) ชื่อว่า 'Athenai'

ข้อควรระวัง

  • เมื่อใช้ UPDATE ... JOIN ให้ระบุ alias (a, c) ให้ชัดเจน
  • อย่าลืม WHERE เพื่อจำกัดแถวที่จะแก้ไข ไม่เช่นนั้นจะกระทบทั้งตาราง
แชร์เรื่องนี้