PostgreSQL ADA dengan Contoh

Isi kandungan:

Anonim

Apa yang ada PostgreSQL?

Pengendali EXISTS menguji sama ada baris terdapat dalam subkueri. Ini bermaksud bahawa pengendali digunakan bersama dengan subkueri. Pengendali Exists dikatakan telah ditemui ketika sekurang-kurangnya satu baris dijumpai dalam subkueri. Anda boleh menggunakan operasi ini bersama dengan pernyataan SELECT, UPDATE, INSERT, dan DELETE.

Dalam Tutorial PostgreSQL ini, anda akan mempelajari perkara berikut:

  • Sintaks
  • Dengan SELECT Statement
  • Dengan Penyataan INSERT
  • Dengan Penyataan KEMASKINI
  • Dengan Penyataan HAPUS
  • Dengan pgAdmin

Sintaks

Berikut adalah sintaks untuk penyataan PostgreSQL EXISTS:

WHERE EXISTS (subquery);

Sintaks di atas menunjukkan bahawa pengendali EXISTS mengambil argumen, yang merupakan subkueri. Subkueri hanyalah pernyataan SELECT yang harus dimulakan dengan SELECT * dan bukannya senarai nama atau ungkapan lajur.

Dengan SELECT Statement

Mari lihat bagaimana menggunakan pernyataan SELECT dengan operator EXISTS. Kami mempunyai jadual berikut:

Buku:

Harga:

Jalankan penyataan berikut:

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

Ini mengembalikan perkara berikut:

Perintah di atas harus mengembalikan semua rekod dalam jadual Buku yang idnya sepadan dengan id sebarang rekod oleh subkueri. Hanya satu id yang dipadankan. Oleh itu, hanya satu rekod yang dikembalikan.

Dengan Penyataan INSERT

Kita boleh menggunakan operator EXISTS dalam penyataan INSERT. Kami mempunyai 3 jadual berikut:

Buku:

Harga:

Harga2:

Kami kemudian boleh menjalankan penyataan berikut:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Jadual Harga adalah seperti berikut:

Baris dengan id 5 dalam jadual bernama Price2 dipadankan. Rekod ini kemudian dimasukkan ke dalam jadual Harga.

Dengan Penyataan KEMASKINI

Kita boleh menggunakan operator EXISTS dalam penyataan UPDATE.

Jalankan pertanyaan berikut:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Kami mengemas kini lajur harga jadual Harga. Tujuan kami adalah agar harga barang yang berkongsi id sama. Hanya satu baris yang dipadankan, iaitu 5.

Namun, karena harganya sama, yaitu 205, tidak ada pembaruan yang dibuat. Sekiranya terdapat perbezaan, pembaruan akan dibuat.

Dengan Penyataan HAPUS

Pernyataan PostgreSQL DELETE boleh menggunakan operator EXISTS. Berikut adalah contoh:

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

Jadual Harga adalah seperti berikut:

Baris dengan id 5 telah dipadamkan.

Dengan pgAdmin

Sekarang mari kita lihat bagaimana tindakan ini dapat dilakukan menggunakan pgAdmin.

Dengan SELECT Statement

Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

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

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

Dengan Penyataan INSERT

Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Langkah 4) Klik butang Laksanakan.

Jadual Harga sekarang adalah seperti berikut:

Dengan Penyataan KEMASKINI

Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Langkah 4) Klik butang Laksanakan.

Jadual Harga sekarang adalah seperti berikut:

Dengan Penyataan HAPUS

Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

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

Langkah 4) Klik butang Laksanakan.

Jadual Harga sekarang adalah seperti berikut:

Ringkasan

  • Pengendali EXISTS menguji sama ada baris terdapat dalam subkueri.
  • Ini digunakan dengan subkueri dan dikatakan telah dipenuhi ketika subkueri mengembalikan sekurang-kurangnya satu baris.
  • Ia digunakan bersama dengan pernyataan SELECT, UPDATE, INSERT, dan DELETE.

Muat turun Pangkalan Data yang digunakan dalam Tutorial ini