คำสั่ง SQL DELETE ลบแถวจากตารางฐานข้อมูล สามารถใช้ WHERE statement ระบุเรคอร์ดที่ต้องการลบ หากไม่ระบุ WHERE ทุกแถวในตารางจะถูกลบ
การลบแถวเป็น operation พบบ่อยใน SQL เช่น ผู้ใช้ตัดสินใจลบบัญชีบนเว็บไซต์ ต้องลบข้อมูลของพวกเขาจาก user database
คุณสามารถใช้คำสั่ง SQL DELETE ลบแถวใดๆ จากตาราง ในบทช่วยสอนนี้ เราจะอธิบายวิธีทำ SQL delete row command บนฐานข้อมูลของคุณ
บทนำสั้นๆ เกี่ยวกับ SQL Records
ฐานข้อมูลประกอบด้วยตารางหลายตาราง แต่ละตารางเก็บเรคอร์ดของตัวเอง
เช่น ฐานข้อมูลบริษัทอาจมีตารางพนักงาน ผู้จัดจำหน่าย แผนก เงินเดือน ฯลฯ แต่ละตารางมีเรคอร์ดของตัวเอง เรคอร์ดคือรายการเดี่ยวในตาราง ตารางเงินเดือนอาจมีรายการชำระเงินให้พนักงาน
เพื่อเพิ่มเรคอร์ดใหม่ในตาราง ใช้คำสั่ง SQL INSERT เพิ่มเรคอร์ดที่มีค่าเฉพาะในคอลัมน์ที่เลือก
ตัวอย่างคำสั่ง SQL INSERT:
INSERT INTO company_departments (name, department_id) VALUES ('Payroll', 5);
แต่ถ้าต้องการลบแถวจากตาราง? ใช้คำสั่ง DELETE row statement
SQL Delete Row from Table
คำสั่ง SQL DELETE ลบแถวเดี่ยวหรือหลายแถวจากตาราง รับ 2 พารามิเตอร์: ระบุชื่อตารางที่ DELETE ควรโฟกัส และเงื่อนไข (optional) ที่ต้องตรงก่อนลบเรคอร์ด
ไวยากรณ์คำสั่ง DELETE:
DELETE FROM table_name WHERE conditions_are_met;
คำสั่ง DELETE ไม่มีคำสั่ง "undo" ยืนยันการลบ เรคอร์ดที่ลบออกจากฐานข้อมูลไม่สามารถกู้คืนได้
WHERE statement ระบุเรคอร์ดที่ควรลบ ใช้ไวยากรณ์เดียวกับ SQL WHERE กับคำสั่งอื่น เช่น SQL INSERT หรือ UPDATE
คำสั่ง DELETE ไม่ได้ลบตาราง จะลบเรคอร์ดภายในตารางนั้นเท่านั้น
ตัวอย่าง Delete Row SQL
หากต้องการลบเฉพาะเรคอร์ดที่ตรงเงื่อนไข ใช้ WHERE clause สมมติตัดสินใจรวมแผนก Marketing เข้า Sales
ตารางตอนนี้มีเรคอร์ด:
| name | title | department_id |
| John | Marketing | 2 |
| Rebecca | Sales | 3 |
ใช้ DELETE query ลบแผนก Marketing:
DELETE FROM company_departments WHERE title = 'Marketing';
ตรวจสอบด้วย SQL SELECT เรคอร์ดถูกลบแล้ว:
| name | title | department_id |
| Rebecca | Sales | 3 |
เรคอร์ดของ Rebecca ไม่ได้รับผลกระทบ เพราะเราลบเฉพาะ title = "Marketing" แต่เรคอร์ดของ John หายไป เพราะเขาทำงานแผนก Marketing
ในกรณีนี้ ลบ 1 เรคอร์ด หากมีพนักงานใน Marketing มากกว่า เรคอร์ดของพวกเขาจะถูกลบทั้งหมด
ตัวอย่าง Delete All Rows SQL
สมมติต้องการลบเรคอร์ดทั้งหมดในตาราง company_departments เนื่องจากปรับโครงสร้างองค์กร ใช้คำสั่ง:
DELETE FROM company_departments;
คิวรี่ลบทุกแถวในตาราง company_departments เพราะไม่ได้ระบุเงื่อนไข หากละ WHERE clause ออกจากคำสั่ง DELETE ใดๆ จะลบทุกแถวในตาราง
ถ้าสืบค้นตาราง company_departments หาพนักงาน title Marketing จะไม่พบเรคอร์ด:
| name | title | department_id |
(0 แถว)
สรุป
คำสั่ง SQL DELETE ลบแถวจากฐานข้อมูล คำสั่งนี้ลบทุกแถว เว้นแต่จะระบุ WHERE statement WHERE statement ให้คุณควบคุมเรคอร์ดที่ถูกลบ
ในบทช่วยสอนนี้ เราพูดถึงพื้นฐานการสร้างแถวใน SQL และวิธีใช้ DELETE statement ลบแถวจากตาราง SQL พร้อมการลบตามเงื่อนไขและลบข้อมูลทั้งหมดในตาราง
อยากเรียนรู้ SQL เพิ่มเติม? ดูคู่มือ How to Learn SQL ฉบับสมบูรณ์ มีรายการแหล่งเรียนรู้ชั้นนำและหลักสูตรออนไลน์