PostgreSQL มีอยู่จริงด้วยการเลือก Operaทอร์ (ตัวอย่าง)
⚡ สรุปอย่างชาญฉลาด
PostgreSQL EXISTS เป็นตัวดำเนินการบูลีนที่ใช้ตรวจสอบว่าซับเควรีที่สัมพันธ์กันส่งคืนแถวใด ๆ หรือไม่ ทำให้คำสั่ง SELECT, INSERT, UPDATE และ DELETE สามารถกรองข้อมูลตามการมีอยู่หรือไม่มีอยู่ของระเบียนที่ตรงกันได้อย่างมีประสิทธิภาพ

สิ่งที่มีอยู่จริงใน PostgreSQL?
การขอ PostgreSQL มีอยู่ ตัวดำเนินการ EXISTS ตรวจสอบว่ามีแถวอยู่ในซับควอรีหรือไม่ ซึ่งหมายความว่าตัวดำเนินการนี้ใช้ร่วมกับซับควอรี ตัวดำเนินการ EXISTS จะถือว่าตรงตามเงื่อนไขเมื่อพบอย่างน้อยหนึ่งแถวในซับควอรี คุณสามารถใช้การดำเนินการนี้ร่วมกับคำสั่ง SELECT, UPDATE, INSERT และ DELETE ได้
PostgreSQL ไวยากรณ์การค้นหา EXISTS
นี่คือไวยากรณ์สำหรับ PostgreSQL คำสั่งที่มีอยู่:
WHERE EXISTS (subquery);
รูปแบบข้างต้นแสดงให้เห็นว่าตัวดำเนินการ EXISTS รับอาร์กิวเมนต์ซึ่งเป็นซับเควรี ซับเควรีเป็นเพียง คำสั่ง SELECT ที่ควรขึ้นต้นด้วย SELECT * แทนที่จะเป็นรายการชื่อคอลัมน์หรือนิพจน์
PostgreSQL มีอยู่จริงด้วยคำสั่ง SELECT
มาดูกันว่าวิธีการใช้คำสั่ง SELECT ร่วมกับตัวดำเนินการ EXISTS เป็นอย่างไร เรามีตารางดังต่อไปนี้:
หนังสือ:
ราคา:
รันคำสั่งต่อไปนี้:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
สิ่งนี้ส่งคืนสิ่งต่อไปนี้:
คำสั่งดังกล่าวควรส่งคืนระเบียนทั้งหมดในตาราง Book ซึ่งมี id ตรงกับ id ของระเบียนใด ๆ ตามแบบสอบถามย่อย มีรหัสเดียวเท่านั้นที่ตรงกัน จึงมีการส่งกลับเพียงบันทึกเดียวเท่านั้น
PostgreSQL มีอยู่แล้วด้วยคำสั่ง INSERT
เราสามารถใช้ตัวดำเนินการ EXISTS ได้ใน คำสั่ง INSERT. เรามีตารางอยู่ 3 ตารางดังต่อไปนี้:
หนังสือ:
ราคา:
ราคา2:
จากนั้นเราสามารถรันคำสั่งต่อไปนี้ได้:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
ตารางราคาตอนนี้เป็นดังนี้:
แถวที่มีรหัส 5 ในตารางชื่อ Price2 ตรงกัน จากนั้นบันทึกนี้จะถูกแทรกลงในตารางราคา
PostgreSQL มีอยู่แล้วพร้อมคำสั่งอัปเดต
เราสามารถใช้ตัวดำเนินการ EXISTS ในคำสั่ง UPDATE ได้
เรียกใช้แบบสอบถามต่อไปนี้:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
เรากำลังอัปเดตคอลัมน์ราคาของตารางราคา เป้าหมายของเราคือการมีราคาของสินค้าที่ใช้รหัสเดียวกัน ตรงกันเพียงแถวเดียวเท่านั้น นั่นคือ 5
อย่างไรก็ตาม เนื่องจากราคาเท่ากัน นั่นคือ 205 จึงไม่มีการอัพเดต หากมีความแตกต่างจะมีการอัพเดต
PostgreSQL มีอยู่แล้วด้วยคำสั่งลบ
A PostgreSQL คำสั่ง DELETE สามารถใช้ตัวดำเนินการ EXISTS ได้ ต่อไปนี้คือตัวอย่าง:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
ตารางราคาตอนนี้เป็นดังนี้:
ลบแถวที่มีรหัส 5 แล้ว
PostgreSQL คำสั่ง EXISTS โดยใช้ pgAdmin
นอกเหนือจากการใช้ SQL shell แล้ว เรายังสามารถเรียกใช้คำสั่ง EXISTS เดียวกันนี้ได้ผ่านทางอินเทอร์เฟซ pgAdmin ต่อไปนี้คือวิธีการดำเนินการเหล่านี้โดยใช้ pgAdmin:
ด้วยคำสั่ง SELECT
ด้านล่างนี้คือขั้นตอนการใช้คำสั่ง EXISTS ใน PostgreSQL โดยใช้คำสั่ง SELECT ผ่าน pgAdmin:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ เปิด pgAdmin แล้วเข้าสู่ระบบบัญชีของคุณโดยใช้ข้อมูลประจำตัวของคุณ
ขั้นตอน 2) สร้างฐานข้อมูลสาธิต
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามด้านล่างในตัวแก้ไขแบบสอบถาม:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
ด้วยคำสั่ง INSERT
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ตอนนี้ตารางราคาควรเป็นดังนี้:
ด้วยคำสั่ง UPDATE
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ตอนนี้ตารางราคาควรเป็นดังนี้:
ด้วยคำสั่ง DELETE
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางด้านซ้าย คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ตอนนี้ตารางราคาควรเป็นดังนี้:
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้





















