PostgreSQL, gdzie istnieje zapytanie

PostgreSQL, gdzie istnieje zapytanie

PostgreSQL: Korzystanie z klauzuli Istnieu

Gdy dowolne zapytanie SQL jest używane wewnątrz innego zapytania SQL, nazywa się on. Skomplikowane zapytanie można łatwo napisać, dzieląc duże zapytanie na wiele zastępców. Istnieje klauzula jest używana z podziałem w instrukcji SQL. Wyjście istnieje zależy od liczby rekordów zwróconych przez podział, ale nie zależy od wartości rekordów. Wynik istnieje, będzie prawdziwy, jeśli powiązane podtrzymanie powróci co najmniej jeden wiersz. Jak można używać, istnieje i nie istnieje klauzula w wyborze, wstawieniu, aktualizacji i usuwania stwierdzeń są pokazane w tym samouczku przy użyciu różnych przykładów.

Istnieje składnia klauzuli:

Wybierz col1, col2, col3…
Z Table_name1
Gdzie istnieje (wybierz 1
Z
TABLE_NAME2
Gdzie col1 = table_name1.col1);

Utwórz trzy tabele nazwane Firma, przedmioty I klienci i wstaw dane. Uruchom następujące zapytanie Wybierz, aby pokazać zawartość tych tabel.

Wybierz * z firmy;
Wybierz * z elementów;
Wybierz * od klientów;

Przykład-1: Korzystanie z klauzuli istnieje w wybierz zapytanie

(a) istnieje

Poniższe zapytanie odzyska rekordy z rzeczy Tabela oparta na firma tabela. Rozpuszczalne przeszukuje wszystkie rekordy z firma stół, gdzie identyfikator firmy z firma Tabela jest równa identyfikator firmy z rzeczy tabela i wartość telefon pole nie jest puste. Jest jeden rekord w firma Tabela, która nie ma numeru telefonu, a ten rekord zostanie pominięty z wyjścia.

Wybierz iton, nazwa, ilość
Z przedmiotów
Gdzie istnieje (wybierz 1
Od firmy
Gdzie przedmioty.company_id = firma.company_id i firma.telefon");

Wyjście:

Zapis LG nie ma wpisu telefonu w tabeli firmy. Więc nie pojawia się na wyjściu.

(b) nie istnieje

Nie istnieje, klauzula jest odwrotna od istnienia klauzuli. Poniższe zapytanie odzyska te rekordy z rzeczy Tabela, gdy podtrzymanie zwróci fałszywe.

Wybierz iton, nazwa, ilość
Z przedmiotów
Gdzie nie istnieje (wybierz 1
Od firmy
Gdzie przedmioty.company_id = firma.company_id i firma.strona internetowa jest null);

Wyjście:

Nie ma zapisu w firma stół, gdzie Adres URL witryny jest NULL. Tak więc wyjście podziału jest fałszywe dla wszystkich rekordów i wszystkie rekordy tabeli elementów są pobierane.

Przykład-2: Korzystanie z klauzuli istnieje w zapytaniu Wstaw

Zgodnie z następującym zapytaniem, dane zostaną wstawione rzeczy stół, kiedy identyfikator firmy obu firma I klienci Tabele są równe.

Wstaw do przedmiotów
(identyfikator firmy)
Wybierz firmę_id
Od klientów
Gdzie istnieje (wybierz 1
Od firmy, klientów
Gdzie klienci.company_id = firma.identyfikator firmy);

Wyjście:

Są trzy wpisy dla identyfikator firmy W tabeli klientów z wartościami są 1 I 2. Zatem substancja powróci True trzy razy, a trzy rekordy zostaną włożone.

Uruchom zapytanie Wybierz, aby sprawdzić treść tabeli elementów.

Przykład-3: Korzystanie z klauzuli istnieje w zapytaniu aktualizacji

Poniższe zapytanie zaktualizuje rekordy rzeczy stół, gdzie identyfikator firmy jest 1, a podział powraca prawdziwie.

Zaktualizuj elementy
SET Name = "Nokia"
Gdzie company_id = 1 i istnieje (wybierz 1
Z przedmiotów
Gdzie name = "nie przypisuje się");

Wyjście:

Tutaj podział powróci TRUE trzy razy i identyfikator firmy jest 1 dla trzech rekordów. Trzy rekordy zostaną zaktualizowane po wykonaniu zapytania aktualizacji.

Uruchom zapytanie Wybierz, aby sprawdzić treść tabeli elementów.

Przykład-4: Korzystanie z klauzuli istnieje w usuwaniu zapytania

Poniższe zapytanie usunie te zapisy rzeczy stół, gdzie identyfikator firmy jest 1, a podział powraca prawdziwie.

Usuń z przedmiotów
Gdzie company_id = 1 i istnieje (wybierz 1
Z przedmiotów
Gdzie name = "nie przypisuje się");

Wyjście:

Istnieją trzy rekordy o wartości 1 identyfikator firmy a jeden rekord ma wartość nazwy `` Nie przypisuj ''. Tak więc warunek będzie prawdziwy przez trzy razy i usunie trzy rekordy z rzeczy tabela.

Uruchom zapytanie Wybierz, aby sprawdzić treść tabeli elementów.

Mam nadzieję, że po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu tego samouczka po przeczytaniu.