Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Podzapytania: Operatory EXISTS, ANY, SOME, ALL w SQL cz. V

Ćwiczenia

Exists

Pobierzmy z bazy danych informacje o miastach, w których nie mieszkają żadni pracownicy:

SELECT Miasto FROM miastoZamieszkania AS mz WHERE 
NOT EXISTS (SELECT * FROM pracownicy WHERE mz.MiastoZamieszkaniaID = miasto);

Rezultat:

Miasto
Londyn

Oczywiście w tym ćwiczeniu musieliśmy użyć przeczenia (NOT), NOT EXISTS jest prawdziwe (zwraca true) jeśli nie zostanie zwrócony przez podzapytanie żaden rekord, a właśnie o to nam chodziło w tej kwerendzie.

Informacje o pracownikach nie mieszkających w Krakowie:

SELECT imie, nazwisko FROM pracownicy WHERE 
EXISTS (SELECT * FROM miastoZamieszkania 
WHERE pracownicy.miasto = miastoZamieszkaniaID AND miasto <> 'Kraków')

Rezultat:

ImieNazwisko
JakubWawrzyniak
MichałJakubiak

ANY, SOME

UWAGA: Omawiany materiał działa na bazach danych firmy Microsoft.

Operator ANY/SOME jest prawdziwy (zwraca true) jeśli którekolwiek ze zwróconych przez podzapytanie danych spełni poprzedzający go warunek logiczny. Jak pisałem na wstępie operator ten sprawdza wszystkie rekordy.

SELECT imie, nazwisko FROM pracownicy WHERE 
'Madryt' <> ANY (SELECT miasto FROM miastoZamieszkania);

Rezultat:

ImięNazwisko
JanKowalski
AdamAdamiak
JakubWawrzyniak
MichałJakubiak

Oczywiście ANY możemy zastąpić operatorem SOME.

ALL

UWAGA: Omawiany materiał działa na bazach danych firmy Microsoft.

Operator ALL działa w zasadzie tak samo jak ANY/SOME z tym wyjątkiem, że sprawdza wszystkie dane. Wszystkie zwrócone przez podzapytanie rekordy muszą spełniać podany wcześniej warunek logiczny.

SELECT imie, nazwisko FROM pracownicy WHERE 
'Londyn' <> ALL (SELECT miasto FROM miastoZamieszkania);

Rezultat:

Nie otrzymamy żadnego wyniku. 0 rekordów.

W tabeli miastoZamieszkania znajduje się miasto „Londyn” dlatego warunek logiczny nie został spełniony.

Strony: 1 2

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , ,

Dodaj komentarz

Komentarze (1)

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest