PostgreSQL ลบแถวจากรายการที่เลือก
⚡ สรุปอย่างชาญฉลาด
PostgreSQL คำสั่ง DELETE จะลบแถวหนึ่งแถวหรือมากกว่านั้นออกจากตาราง และหากใช้ร่วมกับเงื่อนไข WHERE จะลบเฉพาะข้อมูลที่ตรงกับเงื่อนไขเท่านั้น ในขณะที่หากไม่ใช้ WHERE จะลบทุกแถวในตาราง

ลบแบบสอบถามใน PostgreSQL
การขอ คำสั่งลบ in PostgreSQL ใช้สำหรับลบข้อมูลหนึ่งรายการหรือมากกว่าจากตาราง หากต้องการลบเฉพาะแถวที่เลือกจากตาราง PostgreSQL ช่วยให้คุณสามารถรวมคำสั่ง DELETE เข้ากับเงื่อนไข WHERE ได้ มิเช่นนั้น ระบบจะลบข้อมูลทั้งหมดในตาราง
PostgreSQL ไวยากรณ์คำสั่งลบ
คำสั่ง DELETE สามารถกำหนดได้โดยใช้ไวยากรณ์ด้านล่างนี้:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
พารามิเตอร์
พารามิเตอร์ต่อไปนี้สามารถใช้งานได้:
- ด้วยแบบสอบถาม: คำสั่ง WITH ช่วยให้คุณสามารถอ้างอิงถึงซับเควรีตั้งแต่หนึ่งรายการขึ้นไปโดยใช้ชื่อภายในคำสั่ง DELETE ได้
- ชื่อตาราง: ชื่อของตารางที่ต้องการลบเรคคอร์ด
- นามแฝง: ตัวเลือกทดแทนสำหรับชื่อของตารางเป้าหมาย
- รายการใช้งาน: นิพจน์ตารางที่อนุญาตให้ใช้คอลัมน์จากตารางอื่นในส่วน WHERE ของเงื่อนไข
- เงื่อนไข): ไม่บังคับ นี่คือเงื่อนไขที่ต้องเป็นไปตามนั้นสำหรับการลบข้อมูล หากไม่ได้ระบุส่วนนี้ ข้อมูลทั้งหมดในตารางชื่อนั้นจะถูกลบ
- ชื่อเคอร์เซอร์: เคอร์เซอร์ที่จะใช้ในเงื่อนไข WHERE CURRENT OF แถวสุดท้ายที่ดึงมาโดยเคอร์เซอร์นี้จะถูกลบออก
- เอาท์พุทแสดงออก: นิพจน์ที่จะถูกประมวลผลและส่งกลับโดยคำสั่ง DELETE หลังจากลบแต่ละแถวเสร็จสิ้น
- ชื่อเอาต์พุต: ชื่อที่จะใช้สำหรับคอลัมน์ที่ส่งคืน
โปรดทราบว่าเนื่องจากคำสั่ง DELETE จะลบทั้งแถว คุณจึงไม่จำเป็นต้องระบุชื่อคอลัมน์
PostgreSQL ลบแบบสอบถามที่มีเงื่อนไขเดียว
คำสั่ง DELETE สามารถใช้ได้กับเงื่อนไขเดียว ซึ่งกำหนดโดยใช้ส่วน WHERE ลองพิจารณาตาราง Price ที่มีข้อมูลดังต่อไปนี้:
ราคา:
ให้เราลบบันทึกด้วยรหัส 4:
DELETE FROM Price WHERE id = 4;
คำสั่งข้างต้นจะลบข้อมูลที่มีรหัสประจำตัวเป็น 4 เรามาตรวจสอบว่าการลบสำเร็จหรือไม่:
ลบแถวที่มีรหัส 4 แล้ว
ลบแบบสอบถามที่มีสองเงื่อนไข
การขอ PostgreSQL คำสั่ง DELETE สามารถรับเงื่อนไขได้สองเงื่อนไข โดยต้องเชื่อมเงื่อนไขทั้งสองเข้าด้วยกันโดยใช้ตัวดำเนินการ AND เราจะใช้ตารางต่อไปนี้เป็นตัวอย่าง:
ราคา:
ลองพิจารณาตัวอย่างที่ให้ไว้ด้านล่าง:
DELETE FROM Price WHERE id = 3 AND price = 300;
ในคำสั่งข้างต้น เรากำลังลบแถวที่มี id เป็น 3 และราคาเป็น 300 ตอนนี้เราสามารถเรียกดูข้อมูลจากตารางได้แล้ว:
SELECT * FROM Price;
สิ่งนี้ส่งคืนสิ่งต่อไปนี้:
บันทึกที่มี ID 3 และราคา 300 ถูกลบไปแล้ว
PostgreSQL คำสั่งลบโดยใช้เงื่อนไข EXISTS
กับ มีอยู่ ในบางกรณี คุณสามารถทำให้คำสั่ง DELETE ซับซ้อนขึ้นได้ เช่น อาจมีความจำเป็นต้องลบข้อมูลในตารางหนึ่งโดยอ้างอิงจากข้อมูลในอีกตารางหนึ่ง
เนื่องจากคำสั่ง FROM ไม่อนุญาตให้ระบุรายการจากหลายตารางเมื่อทำการลบ ดังนั้นคำสั่ง EXISTS จึงมีประโยชน์มาก เรามีตารางสองตารางดังต่อไปนี้:
หนังสือ:
ราคา:
จากนั้นเราสามารถรันแบบสอบถามต่อไปนี้ได้:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
คำสั่งนี้จะลบแถวในตาราง Book ที่มี id ตรงกันในตาราง Price และมีราคาต่ำกว่า 250
ขณะนี้ตารางหนังสือเป็นดังนี้:
บันทึกที่มีรหัส 1 ถูกลบแล้ว
วิธีการลบแถวใน PostgreSQL โดยใช้ pgAdmin
นอกจากนี้ ยังสามารถเรียกใช้คำสั่งลบข้อมูลแบบเดียวกันได้ผ่านทางอินเทอร์เฟซ pgAdmin โดยทำตามขั้นตอนด้านล่างนี้:
โดยมีเงื่อนไขข้อเดียว
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ เปิด pgAdmin และเข้าสู่ระบบบัญชีของคุณโดยใช้ข้อมูลประจำตัวของคุณ
ขั้นตอน 2) สร้างฐานข้อมูลสาธิต
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามด้านล่างในตัวแก้ไขแบบสอบถาม:
DELETE FROM Price WHERE id = 4;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) เรามาตรวจสอบกันว่าแถวนั้นถูกลบไปแล้วหรือไม่:
โดยมีเงื่อนไขสองประการ
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
DELETE FROM Price WHERE id = 3 AND price = 300;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) ให้เราตรวจสอบว่าการลบสำเร็จหรือไม่:
การใช้เงื่อนไขที่มีอยู่
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) ให้เราตรวจสอบว่าการลบสำเร็จหรือไม่:
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้
















