วิธีใช้คำสั่ง SQL UPDATE
หนึ่งในฟีเจอร์หลักของฐานข้อมูลคือความสามารถในการอัปเดตค่าที่จัดเก็บไว้ คุณสามารถเปลี่ยนแปลงค่าของเรคอร์ดใดๆ ในฐานข้อมูลได้ตลอดเวลา ค่าภายในฐานข้อมูล SQL จะถูกเปลี่ยนแปลงโดยใช้คำสั่ง SQL UPDATE
ในคู่มือนี้ เราจะพูดถึงว่าคำสั่ง SQL UPDATE คืออะไรและวิธีการใช้งาน มาพร้อมตัวอย่างเพื่อช่วยให้คุณเข้าใจการทำงานได้ชัดเจน
SQL UPDATE คืออะไร?
คำสั่ง UPDATE ใช้สำหรับอัปเดตข้อมูลที่มีอยู่ในตาราง SQL
สามารถนำไปใช้แก้ไขทุกเรคอร์ดในฐานข้อมูล หรือเฉพาะเรคอร์ดที่ตรงตามเงื่อนไขที่กำหนด โครงสร้างทั่วไปของคำสั่ง SQL UPDATE มีดังนี้:
UPDATE table SET column1 = value1, column2 = value2... WHERE condition(s);
table หมายถึงชื่อตารางที่คุณต้องการอัปเดตเรคอร์ด
คำสั่งหลังคีย์เวิร์ด SET คือชื่อคอลัมน์ที่ต้องการอัปเดต ตามด้วยเครื่องหมายเท่ากับ และค่าที่ต้องการกำหนดให้คอลัมน์นั้น หากต้องการอัปเดตหลายคอลัมน์ ให้คั่นแต่ละคำสั่งหลัง SET ด้วยเครื่องหมายจุลภาค
มาดูตัวอย่างการใช้งาน SQL UPDATE กัน เรามีตารางชื่อ employees ซึ่งมีข้อมูลดังนี้:
| id | name | title | hired_date | salary |
|---|---|---|---|---|
| 1 | Thomas Carlton | Sales Associate | 09-08-2019 | 28000 |
| 2 | Lisa Ingles | Sales Associate | 12-09-2019 | 28000 |
| 3 | Victoria Carlisle | Sales Director | 04-02-2017 | 36000 |
SQL UPDATE ในการทำงานจริง
Lisa Ingles เพิ่งแต่งงาน ทำให้นามสกุลเปลี่ยนเป็น Lisa Nelson เราสามารถใช้คำสั่ง UPDATE เพื่อเปลี่ยนชื่อของเธอในตาราง employees:
UPDATE employees SET name = 'Lisa Nelson' WHERE id = 2;
คำสั่งนี้เปลี่ยนคอลัมน์เดียวคือ name โดยใช้ clause SET มาดูข้อมูลของเธอเพื่อยืนยันว่าการเปลี่ยนแปลงสำเร็จ:
| id | name | title | hired_date | salary |
|---|---|---|---|---|
| 2 | Lisa Nelson | Sales Associate | 12-09-2019 | 28000 |
นามสกุลของ Lisa ได้รับการเปลี่ยนแปลงแล้ว
อัปเดตหลายเรคอร์ดพร้อมกัน
คุณสามารถอัปเดตหลายเรคอร์ดในตารางด้วยคำสั่ง UPDATE เพียงคำสั่งเดียว โดยปกติจะใช้คำสั่ง WHERE เพื่อให้แน่ใจว่าเฉพาะเรคอร์ดที่ต้องการเท่านั้นที่ถูกอัปเดต
ทีมผู้บริหารตัดสินใจเปลี่ยนตำแหน่ง "Sales Associate" ให้กลายเป็น "Sales Representatives" ทั้งหมด คำสั่ง UPDATE ที่ต้องใช้:
UPDATE employees SET title = 'Sales Representative' WHERE title = 'Sales Associate';
คำสั่งนี้เปลี่ยนค่า title เป็น "Sales Representative" สำหรับทุกคนที่เป็น Sales Associate มาตรวจสอบผลลัพธ์:
| id | name | title | hired_date | salary |
|---|---|---|---|---|
| 1 | Thomas Carlton | Sales Representative | 09-08-2019 | 28000 |
| 2 | Lisa Nelson | Sales Representative | 12-09-2019 | 28000 |
| 3 | Victoria Carlisle | Sales Director | 04-02-2017 | 36000 |
ตำแหน่งของ Thomas Carlton และ Lisa Nelson เปลี่ยนแล้ว ส่วน Victoria ยังคงเป็น Sales Director เพราะเธอไม่ได้อยู่ในเงื่อนไข
อัปเดตทุกเรคอร์ดในตาราง
โดยค่าเริ่มต้น คำสั่ง UPDATE จะเปลี่ยนแปลงทุกเรคอร์ดในฐานข้อมูล คุณต้องระบุคำสั่ง WHERE เพื่อจำกัดขอบเขต
ทุกพนักงานในบริษัทได้รับการเพิ่มเงินเดือน 5% คำสั่ง UPDATE ที่ใช้:
UPDATE employees SET salary = salary * 1.05;
คำสั่งนี้ปรับค่า salary ในทุกเรคอร์ด โดยใช้ตัวคูณ (*) เพิ่มเงินเดือน 1.05 เท่า เทียบเท่ากับการเพิ่ม 5% มาดูผลลัพธ์:
| id | name | title | hired_date | salary |
|---|---|---|---|---|
| 1 | Thomas Carlton | Sales Representative | 09-08-2019 | 29400 |
| 2 | Lisa Nelson | Sales Representative | 12-09-2019 | 29400 |
| 3 | Victoria Carlisle | Sales Director | 04-02-2017 | 37800 |
เงินเดือนของพนักงานทุกคนได้รับการปรับปรุงเรียบร้อยแล้ว
สรุป
คำสั่ง UPDATE ใช้แก้ไขข้อมูลหนึ่งหรือหลายเรคอร์ดในฐานข้อมูล ปกติจะใช้ร่วมกับคำสั่ง WHERE เพื่อระบุเรคอร์ดที่ต้องการแก้ไขอย่างแม่นยำ
หากต้องการทดสอบความเข้าใจ ลองเขียนคำสั่งดังต่อไปนี้:
- เพิ่มเงินเดือนของ Sales Representative ทุกคน 2%
- เปลี่ยนตำแหน่งของ Lisa เป็น Senior Sales Representative
- เปลี่ยนวันเข้าทำงานของ Victoria Carlisle เป็น 04-03-2017
ตอนนี้คุณพร้อมที่จะใช้คำสั่ง UPDATE อย่างมืออาชีพแล้ว!