PostgreSQL ISTNIEJE z przykładami

Spisie treści:

Anonim

Czym jest PostgreSQL?

Operator EXISTS sprawdza, czy w podzapytaniu istnieją wiersze. Oznacza to, że operator jest używany razem z podzapytaniem. Mówi się, że operator Exists został spełniony, gdy w podzapytaniu zostanie znaleziony co najmniej jeden wiersz. Tej operacji można używać wraz z instrukcjami SELECT, UPDATE, INSERT i DELETE.

W tym samouczku PostgreSQL nauczysz się następujących rzeczy:

  • Składnia
  • Z instrukcją SELECT
  • Z instrukcją INSERT
  • Z instrukcją UPDATE
  • Z instrukcją DELETE
  • Dzięki pgAdmin

Składnia

Oto składnia instrukcji PostgreSQL EXISTS:

WHERE EXISTS (subquery);

Powyższa składnia pokazuje, że operator EXISTS przyjmuje argument, który jest podzapytaniem. Podzapytanie to po prostu instrukcja SELECT, która powinna zaczynać się od SELECT * zamiast listy nazw kolumn lub wyrażeń.

Z instrukcją SELECT

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

Książka:

Cena £:

Uruchom następującą instrukcję:

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

Zwraca to:

Powyższe polecenie powinno zwrócić wszystkie rekordy w tabeli Book, których identyfikator jest zgodny z identyfikatorem dowolnego rekordu z podzapytania. Dopasowano tylko jeden identyfikator. W związku z tym zwrócono tylko jeden rekord.

Z instrukcją INSERT

Możemy użyć operatora EXISTS w instrukcji INSERT. Mamy następujące 3 tabele:

Książka:

Cena £:

Cena2:

Następnie możemy uruchomić następującą instrukcję:

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

Cennik przedstawia się teraz następująco:

Wiersz o identyfikatorze 5 w tabeli o nazwie Price2 został dopasowany. Ten rekord został następnie wstawiony do tabeli cen.

Z instrukcją UPDATE

Możemy użyć operatora EXISTS w instrukcji UPDATE.

Uruchom następujące zapytanie:

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

Aktualizujemy kolumnę cen w tabeli cen. Naszym celem jest, aby ceny przedmiotów o wspólnym identyfikatorze 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.

Z instrukcją DELETE

Instrukcja DELETE PostgreSQL może używać operatora EXISTS. Oto przykład:

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

Cennik przedstawia się teraz następująco:

Wiersz o identyfikatorze 5 został usunięty.

Dzięki pgAdmin

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

Z instrukcją SELECT

Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się do swojego konta pgAdmin.

Krok 2)

  1. Z paska nawigacji po lewej stronie kliknij Bazy danych.
  2. Kliknij opcję Demo.

Krok 3) Wpisz zapytanie w edytorze zapytań:

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

Krok 4) Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Z instrukcją INSERT

Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się do swojego konta pgAdmin.

Krok 2)

  1. Z paska nawigacji po lewej stronie kliknij Bazy danych.
  2. Kliknij opcję Demo.

Krok 3) Wpisz zapytanie w edytorze zapytań:

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

Krok 4) Kliknij przycisk Wykonaj.

Cennik powinien teraz wyglądać następująco:

Z instrukcją UPDATE

Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się do swojego konta pgAdmin.

Krok 2)

  1. Z paska nawigacji po lewej stronie kliknij Bazy danych.
  2. Kliknij opcję Demo.

Krok 3) Wpisz zapytanie w edytorze zapytań:

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

Krok 4) Kliknij przycisk Wykonaj.

Cennik powinien teraz wyglądać następująco:

Z instrukcją DELETE

Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się do swojego konta pgAdmin.

Krok 2)

  1. Z paska nawigacji po lewej stronie kliknij Bazy danych.
  2. Kliknij opcję Demo.

Krok 3) Wpisz zapytanie w edytorze zapytań:

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

Krok 4) Kliknij przycisk Wykonaj.

Cennik powinien teraz wyglądać następująco:

Podsumowanie

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

Pobierz bazę danych używaną w tym samouczku