PostgreSQL Istnieje z przykładem Wybierz, Wstaw, Aktualizuj i Usuń

To, co istnieje PostgreSQL?

PostgreSQL ISTNIEJE operator sprawdza, czy wiersz(e) istnieją w podzapytaniu. Oznacza to, że operator jest używany razem z podzapytaniem. Operator Exists jest uważany za spełniony, gdy w podzapytaniu zostanie znaleziony przynajmniej jeden wiersz. Możesz użyć tej operacji razem z poleceniami SELECT, UPDATE, INSERT i DELETE.

Składnia zapytania Postgres istnieje

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 Występuje z instrukcją SELECT

Zobaczmy, jak używać instrukcji SELECT z operatorem EXISTS. Mamy następujące tabele:

Książka:

PostgreSQL Występuje z instrukcją SELECT

Cena:

PostgreSQL Występuje z instrukcją SELECT

Uruchom następujące polecenie:

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

To zwraca następujące informacje:

PostgreSQL Występuje z instrukcją SELECT

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 Występuje z instrukcją INSERT

Możemy użyć operatora EXISTS w WSTAW oświadczenieMamy następujące 3 tabele:

Książka:

PostgreSQL Występuje z instrukcją INSERT

Cena:

PostgreSQL Występuje z instrukcją INSERT

Cena2:

PostgreSQL Występuje z instrukcją INSERT

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:

PostgreSQL Występuje z instrukcją INSERT

Dopasowano wiersz o identyfikatorze 5 w tabeli o nazwie Cena2. Rekord ten został następnie wstawiony do tabeli cen.

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

Postgres istnieje z instrukcją UPDATE

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.

Postgres istnieje 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:

Postgres istnieje z instrukcją DELETE

Wiersz o identyfikatorze 5 został usunięty.

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Zobaczmy teraz, jak można wykonać te akcje za pomocą pgAdmin:

Jak korzystać z zapytania istniejącego w PostgreSQL z instrukcją SELECT przy użyciu pgAdmin

Poniżej znajdują się kroki, w których należy użyć zapytania Exists PostgreSQL z instrukcją 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 uwierzytelniających

Krok 2) Utwórz bazę danych demonstracyjnych

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Krok 3) Wpisz zapytanie

Wpisz poniższe zapytanie w edytorze zapytań:

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

Krok 4) Wykonaj zapytanie

Kliknij przycisk Wykonaj

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Powinno zostać zwrócone:

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Istnieje oświadczenie w PostgreSQL za pomocą pgAdmina

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.

Istnieje oświadczenie w PostgreSQL za pomocą pgAdmina

Tabela cen powinna teraz wyglądać następująco:

Istnieje oświadczenie w PostgreSQL za pomocą pgAdmina

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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Istnieje oświadczenie w PostgreSQL za pomocą pgAdmina

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.

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Tabela cen powinna teraz wyglądać następująco:

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

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.

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Tabela cen powinna teraz wyglądać następująco:

PostgreSQL Instrukcja istnieje przy użyciu pgAdmin

Podsumowanie

  • Operator EXISTS sprawdza, czy wiersz(e) istnieją w podzapytaniu.
  • Jest ono używane z podzapytaniem i mówi się, że zostało spełnione, gdy podzapytanie zwróci co najmniej jeden wiersz.
  • Używa się go razem z instrukcjami SELECT, UPDATE, INSERT i DELETE.

Pobierz bazę danych używaną w tym samouczku