PostgreSQL ISTNIEJE z WYBIERZ Operator (Przykład)
⚡ Inteligentne podsumowanie
PostgreSQL EXISTS to operator logiczny, który sprawdza, czy skorelowane podzapytanie zwraca jakikolwiek wiersz, umożliwiając instrukcjom SELECT, INSERT, UPDATE i DELETE wydajne filtrowanie danych według obecności lub braku pasujących rekordów.

Co to jest EXISTS w PostgreSQL?
PostgreSQL ISTNIEJE Operator sprawdza, czy wiersz(e) istnieją w podzapytaniu. Oznacza to, że operator jest używany razem z podzapytaniem. Operator EXISTS uznaje się za spełniony, gdy w podzapytaniu zostanie znaleziony co najmniej jeden wiersz. Operacji tej można używać razem z instrukcjami SELECT, UPDATE, INSERT i DELETE.
PostgreSQL Składnia zapytania EXISTS
Oto składnia dla PostgreSQL Instrukcja ISTNIEJE:
WHERE EXISTS (subquery);
Powyższa składnia pokazuje, że operator EXISTS przyjmuje argument, który jest podzapytaniem. Podzapytanie jest po prostu SELECT oświadczenie które powinno zaczynać się od SELECT * zamiast listy nazw kolumn lub wyrażeń.
PostgreSQL EXISTS z poleceniem SELECT
Zobaczmy, jak używać instrukcji SELECT z operatorem EXISTS. Mamy następujące tabele:
Książka:
Cena:
Uruchom następujące polecenie:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
To zwraca następujące informacje:
Powyższe polecenie powinno zwrócić wszystkie rekordy w tabeli Book, których identyfikator odpowiada identyfikatorowi dowolnego rekordu w podzapytaniu. Dopasowano tylko jeden identyfikator. W związku z tym zwrócono tylko jeden rekord.
PostgreSQL EXISTS z poleceniem INSERT
Możemy użyć operatora EXISTS w WSTAW oświadczenieMamy następujące 3 tabele:
Książka:
Cena:
Cena2:
Następnie możemy uruchomić następujące polecenie:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Tabela cen wygląda teraz następująco:
Dopasowano wiersz o identyfikatorze 5 w tabeli o nazwie Cena2. Rekord ten został następnie wstawiony do tabeli cen.
PostgreSQL EXISTS z instrukcją UPDATE
Operatora EXISTS możemy używać w poleceniu UPDATE.
Uruchom następujące zapytanie:
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);
Aktualizujemy kolumnę cenową w tabeli cen. Naszym celem jest, aby ceny przedmiotów mających wspólny identyfikator były takie same. Dopasowano tylko jeden wiersz, czyli 5.
Ponieważ jednak ceny są równe, czyli 205, nie dokonano żadnej aktualizacji. Gdyby była różnica, aktualizacja zostałaby dokonana.
PostgreSQL EXISTS z instrukcją DELETE
A PostgreSQL Instrukcja DELETE może używać operatora EXISTS. Oto przykład:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Tabela cen wygląda teraz następująco:
Wiersz o identyfikatorze 5 został usunięty.
PostgreSQL Instrukcja EXISTS z użyciem pgAdmin
Poza powłoką SQL, te same zapytania EXISTS można wykonać wizualnie za pomocą interfejsu pgAdmin. Zobaczmy teraz, jak można wykonać te czynności za pomocą pgAdmin:
Z instrukcją SELECT
Poniżej przedstawiono kroki korzystania z zapytania EXISTS w PostgreSQL za pomocą polecenia SELECT przy użyciu pgAdmin:
Krok 1) Zaloguj się na swoje konto pgAdmin. Otwórz pgAdmin i zaloguj się na swoje konto, używając swoich danych logowania.
Krok 2) Utwórz bazę danych demonstracyjną.
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz poniższe zapytanie w edytorze zapytań:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Z instrukcją INSERT
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Krok 4) Kliknij przycisk Wykonaj.
Tabela cen powinna teraz wyglądać następująco:
Z instrukcją UPDATE
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
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);
Krok 4) Kliknij przycisk Wykonaj.
Tabela cen powinna teraz wyglądać następująco:
Z instrukcją DELETE
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Krok 4) Kliknij przycisk Wykonaj.
Tabela cen powinna teraz wyglądać następująco:
Pobierz bazę danych używaną w tym samouczku





















