Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คำสั่ง SQL DELETE: ลบแถวข้อมูลจากตาราง

คำสั่ง 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

ตารางตอนนี้มีเรคอร์ด:

nametitledepartment_id
John
Marketing
2
RebeccaSales3

ใช้ DELETE query ลบแผนก Marketing:

DELETE FROM company_departments WHERE title = 'Marketing';

ตรวจสอบด้วย SQL SELECT เรคอร์ดถูกลบแล้ว:

nametitledepartment_id
RebeccaSales3

เรคอร์ดของ 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 จะไม่พบเรคอร์ด:

nametitledepartment_id



(0 แถว)

สรุป

คำสั่ง SQL DELETE ลบแถวจากฐานข้อมูล คำสั่งนี้ลบทุกแถว เว้นแต่จะระบุ WHERE statement WHERE statement ให้คุณควบคุมเรคอร์ดที่ถูกลบ

ในบทช่วยสอนนี้ เราพูดถึงพื้นฐานการสร้างแถวใน SQL และวิธีใช้ DELETE statement ลบแถวจากตาราง SQL พร้อมการลบตามเงื่อนไขและลบข้อมูลทั้งหมดในตาราง

อยากเรียนรู้ SQL เพิ่มเติม? ดูคู่มือ How to Learn SQL ฉบับสมบูรณ์ มีรายการแหล่งเรียนรู้ชั้นนำและหลักสูตรออนไลน์