Podzapytania: Podzapytania niepowiązane w SQL cz. I

Język SQL pozwala na zagnieżdżanie zapytań do bazy danych czyli na umieszczanie jednego zapytania w drugim itd.. Jest to możliwe dzięki temu, że serwery bazodanowe odczytują dane najpierw z wewnętrznych zapytań, a później stopniowo „przesuwają się” do tych zewnętrznych. Dzięki temu pobrane wcześniej dane możemy użyć w innych zapytaniach.

Ważne tutaj jest, żeby przy konstruowaniu kwerend zastanowić się co tak naprawdę nasze podzapytanie zwróci. Czy będzie to jedna wartość, czy może jakiś zbiór albo tabela? Jest to o tyle kluczowe, że na przykład kiedy dostaniemy zbiór danych to nie możemy tego porównać do jednej wartości. W takim wypadku należy zastosować na przykład operator IN.

W tym artykule omówię podzapytania niepowiązane, które charakteryzują się tym, że zwracają tylko jedną wartość oraz wykonywane są raz. W przeciwieństwie do podzapytań powiązanych (zostaną one omówione w II części tego wpisu) gdzie zapytanie wewnętrzne wykonywane jest dla każdego wiersza zapytania zewnętrznego z osobna.

Należy również zwrócić uwagę, że podzapytania zawsze umieszczane są w nawiasach okrągłych: ( ).

Do ćwiczeń będziemy wykorzystywać bazę danych zbudowaną z dwóch tabel:

Tabela: pracownicy

PracownicyID (♠) Miasto (♣) Imie Nazwisko Data_urodzenia Stanowisko Data_zatrudnienia
1 1 Jan Kowalski 1984-12-23 Programista 1999-12-09
2 1 Adam Adamiak 1991-08-08 Menadżer 2011-31-01
3 3 Jakub Wawrzyniak 1990-16-03 Programista 2010-01-04
4 2 Michał Jakubiak 1981-05-02 Projektant 1998-09-22

Gdzie kluczem (♠) jest kolumna PracownicyID.

Tabela: miastoZamieszkania

MiastoZamieszkaniaID (♣) Miasto
1 Kraków
2 Warszawa
3 Wrocław
4 Londyn

Gdzie kluczem (♣) jest kolumna MiastoZamieszkaniaID oraz (♣).

Obie tabele zostały połączone za pomocą relacji PracownicyID -> MiastoZamieszkaniaID (♠ -> ♣). Oznacza to, że do każdego pracownika zostało przypisane jego miasto zamieszkania.

Strony: 1 2

, , ,