SQL การใช้งาน UPDATE Statement

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

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

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

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

1. อัปเดตข้อมูลเฉพาะบางแถว

ถ้าเรามีตาราง employees ที่เก็บข้อมูลของพนักงาน และต้องการอัปเดตเงินเดือนของพนักงานที่มี employee_id เท่ากับ 5 เขียนคำสั่งได้ดังนี้

SQL
UPDATE employees
SET salary = 60000
WHERE employee_id = 5;

2. อัปเดตหลายคอลัมน์พร้อมกัน

สามารถอัปเดตข้อมูลในหลายคอลัมน์ในคำสั่งเดียว ตัวอย่างเช่น ต้องการอัปเดตทั้งเงินเดือนและตำแหน่งงานของพนักงานที่มี employee_id เท่ากับ 5

SQL
UPDATE employees
SET salary = 65000, position = 'Manager'
WHERE employee_id = 5;

3. อัปเดตทุกแถวในตาราง

หากต้องการอัปเดตทุกแถวในตาราง เช่น ต้องการเพิ่มเงินเดือนให้พนักงานทุกคน 10%

SQL
UPDATE employees
SET salary = salary * 1.10;

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

4. อัปเดตข้อมูลจากตารางอื่น (การ Join)

บางครั้งเราอาจต้องการอัปเดตข้อมูลโดยอิงกับข้อมูลจากอีกตารางหนึ่ง เช่น มีตาราง salaries ที่เก็บข้อมูลเงินเดือนและต้องการอัปเดตตาราง employees ให้ตรงกับเงินเดือนในตาราง salaries

SQL
UPDATE employees
SET salary = (SELECT new_salary FROM salaries WHERE salaries.employee_id = employees.employee_id)
WHERE EXISTS (SELECT 1 FROM salaries WHERE salaries.employee_id = employees.employee_id);

5. อัปเดตข้อมูลที่มีเงื่อนไขซับซ้อน

หากต้องการอัปเดตข้อมูลโดยใช้เงื่อนไขหลายเงื่อนไข ตัวอย่างเช่น ต้องการอัปเดตเงินเดือนของพนักงานที่มีตำแหน่งเป็น ‘Developer’ และมีเงินเดือนน้อยกว่า 50,000

SQL
UPDATE employees
SET salary = salary + 5000
WHERE position = 'Developer' AND salary < 50000;

6. อัปเดตข้อมูลโดยใช้ CASE

สามารถใช้ CASE เพื่อกำหนดการอัปเดตแบบมีเงื่อนไขในคำสั่งเดียวได้ ตัวอย่างเช่น

SQL
UPDATE employees
SET salary = CASE
    WHEN position = 'Manager' THEN salary * 1.20
    WHEN position = 'Developer' THEN salary * 1.10
    ELSE salary * 1.05
END;

ในตัวอย่างนี้ พนักงานแต่ละคนจะได้รับการอัปเดตเงินเดือนตามตำแหน่งงาน

แชร์เรื่องนี้