PostgreSQL มีอยู่พร้อมกับตัวอย่างการเลือก แทรก อัปเดต และลบ

สิ่งที่มีอยู่ใน PostgreSQL?

เหตุการณ์ PostgreSQL มีอยู่ ตัวดำเนินการจะทดสอบว่าแถวในซับเควรีมีหรือไม่ ซึ่งหมายความว่าตัวดำเนินการนี้จะถูกใช้ร่วมกับซับเควรี ตัวดำเนินการ Exists จะถือว่าตรงตามเกณฑ์เมื่อพบแถวอย่างน้อยหนึ่งแถวในซับเควรี คุณสามารถใช้การดำเนินการนี้ร่วมกับคำสั่ง SELECT, UPDATE, INSERT และ DELETE

Postgres มีไวยากรณ์แบบสอบถามอยู่

นี่คือไวยากรณ์สำหรับ PostgreSQL คำสั่งที่มีอยู่:

WHERE EXISTS (subquery);

รูปแบบข้างต้นแสดงให้เห็นว่าตัวดำเนินการ EXISTS รับอาร์กิวเมนต์ซึ่งเป็นซับเควรี ซับเควรีเป็นเพียง คำสั่ง SELECT ที่ควรขึ้นต้นด้วย SELECT * แทนที่จะเป็นรายการชื่อคอลัมน์หรือนิพจน์

PostgreSQL มีอยู่ในคำสั่ง SELECT

มาดูวิธีใช้คำสั่ง SELECT กับตัวดำเนินการ EXISTS กัน เรามีตารางดังต่อไปนี้:

หนังสือ:

PostgreSQL มีอยู่ในคำสั่ง SELECT

ราคา:

PostgreSQL มีอยู่ในคำสั่ง SELECT

รันคำสั่งต่อไปนี้:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

PostgreSQL มีอยู่ในคำสั่ง SELECT

คำสั่งดังกล่าวควรส่งคืนระเบียนทั้งหมดในตาราง Book ซึ่งมี id ตรงกับ id ของระเบียนใด ๆ ตามแบบสอบถามย่อย มีรหัสเดียวเท่านั้นที่ตรงกัน จึงมีการส่งกลับเพียงบันทึกเดียวเท่านั้น

PostgreSQL มีอยู่ในคำสั่ง INSERT

เราสามารถใช้ตัวดำเนินการ EXISTS ได้ใน คำสั่ง INSERT. เรามีตารางอยู่ 3 ตารางดังต่อไปนี้:

หนังสือ:

PostgreSQL มีอยู่ในคำสั่ง INSERT

ราคา:

PostgreSQL มีอยู่ในคำสั่ง INSERT

ราคา2:

PostgreSQL มีอยู่ในคำสั่ง INSERT

จากนั้นเราสามารถรันคำสั่งต่อไปนี้ได้:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

ตารางราคาตอนนี้เป็นดังนี้:

PostgreSQL มีอยู่ในคำสั่ง INSERT

แถวที่มีรหัส 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);

Postgres มีอยู่พร้อมกับคำสั่ง UPDATE

เรากำลังอัปเดตคอลัมน์ราคาของตารางราคา เป้าหมายของเราคือการมีราคาของสินค้าที่ใช้รหัสเดียวกัน ตรงกันเพียงแถวเดียวเท่านั้น นั่นคือ 5

อย่างไรก็ตาม เนื่องจากราคาเท่ากัน นั่นคือ 205 จึงไม่มีการอัพเดต หากมีความแตกต่างจะมีการอัพเดต

Postgres มีอยู่พร้อมกับคำสั่ง DELETE

A PostgreSQL คำสั่ง DELETE สามารถใช้ตัวดำเนินการ EXISTS ได้ ต่อไปนี้คือตัวอย่าง:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

ตารางราคาตอนนี้เป็นดังนี้:

Postgres มีอยู่พร้อมกับคำสั่ง DELETE

ลบแถวที่มีรหัส 5 แล้ว

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ตอนนี้เรามาดูกันว่าการกระทำเหล่านี้สามารถทำได้โดยใช้ pgAdmin อย่างไร:

วิธีใช้แบบสอบถามที่มีอยู่ใน PostgreSQL ด้วยคำสั่ง SELECT โดยใช้ pgAdmin

ด้านล่างนี้เป็นขั้นตอนในการใช้คิวรีที่มีอยู่ PostgreSQL ด้วยคำสั่ง SELECT โดยใช้ pgAdmin:

ขั้นตอนที่ 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

เปิด pgAdmin และเข้าสู่ระบบบัญชีของคุณโดยใช้ข้อมูลประจำตัวของคุณ

ขั้นตอนที่ 2) สร้างฐานข้อมูลสาธิต

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ขั้นตอนที่ 3) พิมพ์แบบสอบถาม

พิมพ์แบบสอบถามด้านล่างในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

ขั้นตอนที่ 4) ดำเนินการแบบสอบถาม

คลิกปุ่มดำเนินการ

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ควรส่งคืนสิ่งต่อไปนี้:

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ด้วยคำสั่ง INSERT

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

คำชี้แจงที่มีอยู่ใน PostgreSQL โดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

ขั้นตอน 4) คลิกปุ่มดำเนินการ

คำชี้แจงที่มีอยู่ใน PostgreSQL โดยใช้ pgAdmin

ตอนนี้ตารางราคาควรเป็นดังนี้:

คำชี้แจงที่มีอยู่ใน PostgreSQL โดยใช้ pgAdmin

ด้วยคำสั่ง UPDATE

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

คำชี้แจงที่มีอยู่ใน PostgreSQL โดยใช้ pgAdmin

ขั้นตอน 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) คลิกปุ่มดำเนินการ

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ตอนนี้ตารางราคาควรเป็นดังนี้:

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ด้วยคำสั่ง DELETE

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

ขั้นตอน 4) คลิกปุ่มดำเนินการ

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

ตอนนี้ตารางราคาควรเป็นดังนี้:

PostgreSQL มีคำสั่งโดยใช้ pgAdmin

สรุป

  • ตัวดำเนินการ EXISTS จะทดสอบว่ามีแถวอยู่ในซับเควียร์หรือไม่
  • ใช้กับแบบสอบถามย่อยและกล่าวว่าจะพบเมื่อแบบสอบถามย่อยส่งคืนอย่างน้อยหนึ่งแถว
  • ใช้ร่วมกับคำสั่ง SELECT, UPDATE, INSERT และ DELETE

ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้