PostgreSQL Există cu exemplu de selectare, inserare, actualizare și ștergere

Ce este Există în PostgreSQL?

PostgreSQL EXISTĂ operatorul testează dacă un rând(e) există într-o subinterogare. Aceasta înseamnă că operatorul este utilizat împreună cu o subinterogare. Operatorul Există se spune că a fost îndeplinit atunci când cel puțin un rând este găsit în subinterogare. Puteți utiliza această operație împreună cu instrucțiunile SELECT, UPDATE, INSERT și DELETE.

Sintaxa de interogare Postgres există

Iată sintaxa pentru PostgreSQL Declarație EXISTS:

WHERE EXISTS (subquery);

Sintaxa de mai sus arată că operatorul EXISTS preia un argument, care este o subinterogare. Subinterogarea este pur și simplu a instrucțiunea SELECT care ar trebui să înceapă cu un SELECT * în loc de o listă de nume de coloane sau expresii.

PostgreSQL Există cu instrucțiunea SELECT

Să vedem cum să folosim o instrucțiune SELECT cu operatorul EXISTS. Avem următoarele tabele:

Carte:

PostgreSQL Există cu instrucțiunea SELECT

Preț:

PostgreSQL Există cu instrucțiunea SELECT

Rulați următoarea instrucțiune:

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

Aceasta returnează următoarele:

PostgreSQL Există cu instrucțiunea SELECT

Comanda de mai sus ar trebui să returneze toate înregistrările din tabelul Book al căror id se potrivește cu id-ul oricăror înregistrări din subinterogare. Un singur ID a fost potrivit. Prin urmare, a fost returnată o singură înregistrare.

PostgreSQL Există cu instrucțiunea INSERT

Putem folosi operatorul EXISTS într-un instrucțiunea INSERT. Avem următoarele 3 tabele:

Carte:

PostgreSQL Există cu instrucțiunea INSERT

Preț:

PostgreSQL Există cu instrucțiunea INSERT

Preț 2:

PostgreSQL Există cu instrucțiunea INSERT

Apoi putem rula următoarea instrucțiune:

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

Tabelul de prețuri este acum după cum urmează:

PostgreSQL Există cu instrucțiunea INSERT

Rândul cu id-ul 5 din tabelul numit Preț2 a fost potrivit. Această înregistrare a fost apoi inserată în tabelul de prețuri.

Postgres există cu instrucțiunea UPDATE

Putem folosi operatorul EXISTS într-o instrucțiune UPDATE.

Rulați următoarea interogare:

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 există cu instrucțiunea UPDATE

Actualizăm coloana de preț a tabelului de prețuri. Scopul nostru este ca prețurile articolelor care au un ID să fie aceleași. Doar un rând a fost potrivit, adică 5.

Cu toate acestea, deoarece prețurile sunt egale, adică 205, nu s-a făcut nicio actualizare. Dacă ar fi fost o diferență, ar fi fost făcută o actualizare.

Postgres există cu instrucțiunea DELETE

A PostgreSQL Instrucțiunea DELETE poate folosi operatorul EXISTS. Iată un exemplu:

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

Tabelul de prețuri este acum după cum urmează:

Postgres există cu instrucțiunea DELETE

Rândul cu ID-ul 5 a fost șters.

PostgreSQL Declarație Exist folosind pgAdmin

Acum să vedem cum pot fi efectuate aceste acțiuni folosind pgAdmin:

Cum se utilizează Interogarea existentă în PostgreSQL cu instrucțiunea SELECT folosind pgAdmin

Mai jos sunt pașii pentru a utiliza interogarea Există PostgreSQL cu instrucțiunea SELECT folosind pgAdmin:

Pasul 1) Conectați-vă la contul dvs. pgAdmin

Deschideți pgAdmin și conectați-vă la contul dvs. folosind datele de conectare

Pasul 2) Creați o bază de date demonstrativă

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

PostgreSQL Declarație Exist folosind pgAdmin

Pasul 3) Introduceți interogarea

Introduceți interogarea de mai jos în editorul de interogări:

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

Pasul 4) Executați interogarea

Faceți clic pe butonul Execute

PostgreSQL Declarație Exist folosind pgAdmin

Ar trebui să returneze următoarele:

PostgreSQL Declarație Exist folosind pgAdmin

Cu instrucțiunea INSERT

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Declarație există în PostgreSQL folosind pgAdmin

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Declarație există în PostgreSQL folosind pgAdmin

Tabelul de prețuri ar trebui să fie acum după cum urmează:

Declarație există în PostgreSQL folosind pgAdmin

Cu Declarație UPDATE

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Declarație există în PostgreSQL folosind pgAdmin

Pas 3) Introduceți interogarea în editorul de interogări:

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);

Pas 4) Faceți clic pe butonul Execute.

PostgreSQL Declarație Exist folosind pgAdmin

Tabelul de prețuri ar trebui să fie acum după cum urmează:

PostgreSQL Declarație Exist folosind pgAdmin

Cu instrucțiunea DELETE

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

PostgreSQL Declarație Exist folosind pgAdmin

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

PostgreSQL Declarație Exist folosind pgAdmin

Tabelul de prețuri ar trebui să fie acum după cum urmează:

PostgreSQL Declarație Exist folosind pgAdmin

Rezumat

  • Operatorul EXISTS testează dacă un rând(e) există într-o subinterogare.
  • Este folosit cu o subinterogare și se spune că a fost îndeplinit atunci când subinterogarea returnează cel puțin un rând.
  • Este folosit împreună cu instrucțiunile SELECT, UPDATE, INSERT și DELETE.

Descărcați baza de date folosită în acest tutorial