PostgreSQL มีอยู่พร้อมกับตัวอย่างการเลือก แทรก อัปเดต และลบ
สิ่งที่มีอยู่ใน PostgreSQL?
เหตุการณ์ PostgreSQL มีอยู่ ตัวดำเนินการจะทดสอบว่าแถวในซับเควรีมีหรือไม่ ซึ่งหมายความว่าตัวดำเนินการนี้จะถูกใช้ร่วมกับซับเควรี ตัวดำเนินการ Exists จะถือว่าตรงตามเกณฑ์เมื่อพบแถวอย่างน้อยหนึ่งแถวในซับเควรี คุณสามารถใช้การดำเนินการนี้ร่วมกับคำสั่ง SELECT, UPDATE, INSERT และ DELETE
Postgres มีไวยากรณ์แบบสอบถามอยู่
นี่คือไวยากรณ์สำหรับ 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 ตรงกัน จากนั้นบันทึกนี้จะถูกแทรกลงในตารางราคา
Postgres มีอยู่พร้อมกับคำสั่ง UPDATE
เราสามารถใช้ตัวดำเนินการ 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 จึงไม่มีการอัพเดต หากมีความแตกต่างจะมีการอัพเดต
Postgres มีอยู่พร้อมกับคำสั่ง DELETE
A PostgreSQL คำสั่ง DELETE สามารถใช้ตัวดำเนินการ EXISTS ได้ ต่อไปนี้คือตัวอย่าง:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
ตารางราคาตอนนี้เป็นดังนี้:
ลบแถวที่มีรหัส 5 แล้ว
PostgreSQL มีคำสั่งโดยใช้ pgAdmin
ตอนนี้เรามาดูกันว่าการกระทำเหล่านี้สามารถทำได้โดยใช้ pgAdmin อย่างไร:
วิธีใช้แบบสอบถามที่มีอยู่ใน PostgreSQL ด้วยคำสั่ง SELECT โดยใช้ pgAdmin
ด้านล่างนี้เป็นขั้นตอนในการใช้คิวรีที่มีอยู่ 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) คลิกปุ่มดำเนินการ
ตอนนี้ตารางราคาควรเป็นดังนี้:
สรุป
- ตัวดำเนินการ EXISTS จะทดสอบว่ามีแถวอยู่ในซับเควียร์หรือไม่
- ใช้กับแบบสอบถามย่อยและกล่าวว่าจะพบเมื่อแบบสอบถามย่อยส่งคืนอย่างน้อยหนึ่งแถว
- ใช้ร่วมกับคำสั่ง SELECT, UPDATE, INSERT และ DELETE
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้