Oferty pracy dla inżynierów
  • StrefaInzyniera.pl (current)
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektronika
    • Automatyka
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Zaloguj się
  • STREFA INŻYNIERA
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektroniki
    • Automatyki
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Logowanie
  • Zaloguj się
Categories SQL

Operator EXISTS

W odniesieniu do podzapytań skorelowanych możliwe jest także zastosowanie specjalnego operatora o nazwie EXISTS. Operator ten pozwala ustalić, czy pożądane przez nas dane znajdują się w wyniku podzapytania skorelowanego. Powiedzmy, że chcemy dowiedzieć się, którzy użytkownicy dokonali jakichkolwiek transakcji. Jednym ze sposobów realizacji takiego wymagania jest zbudowanie następującej instrukcji z użyciem operatora EXISTS:

SELECT
NazwaUżytkownika as 'Nazwa użytkownika'
FROM Użytkownicy
WHERE EXISTS
(SELECT *
FROM Transakcje
WHERE Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika)

Zwrócony wynik to:

Nazwa użytkownika
Cecylia Romanowska
Elżbieta Borecka
Romuald Gawliński

 

Podzapytanie w powyższym zapytaniu jest podzapytaniem skorelowanym. Nie może bowiem zostać wykonane jako odrębna instrukcja SELECT, gdyż jest powiązane z zewnętrznym zapytaniem. Słowo kluczowe EXISTS w powyższej instrukcji w odniesieniu do podzapytania zweryfikuje jego wynik jako prawdziwy, jeśli instrukcja SELECT w podzapytaniu skorelowanym zwróci jakiekolwiek dane. Zauważ, że podzapytanie wybiera wszystkie kolumny (SELECT *). Ponieważ nie ma znaczenia, jakie kolumny są wybierane w podzapytaniu, używamy symbolu gwiazdki, aby zwrócone zostały wszystkie kolumny. Interesuje nas natomiast to, czy podzapytanie zwraca jakiekolwiek dane. W wyniku otrzymujemy zatem listę wszystkich użytkowników oprócz Anny Wodeckiej, która nie dokonała żadnych transakcji.


Tak jak w dotychczas omawianych przypadkach, tę samą logikę, zawartą w powyższej instrukcji, można również wyrazić w inny sposób. Poniżej znajduje się instrukcja, w której razem z podzapytaniem zastosowano operator IN. Zwraca ona te same wyniki co zapytanie powyżej.

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
WHERE IDUżytkownika IN
(SELECT IDUżytkownika
FROM Transakcje)

Składnia tej instrukcji wydaje się być mniej skomplikowana. Te same dane otrzymamy również, budując następującą instrukcję niezawierającą podzapytania:

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
INNER JOIN Transakcje
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika
GROUP BY NazwaUżytkownika

W powyższym zapytaniu zastosowano klauzulę INNER JOIN, dzięki której wybierani są wyłącznie użytkownicy istniejący również w tabeli Transakcje. Zauważ ponadto, że konieczne było użycie w tej instrukcji klauzuli GROUP BY, aby w wyniku pojawił się tylko jeden wiersz dla każdego użytkownika. 

 

Język SQL. Przyjazny podręcznik. Wydanie II Autor: Larry Rockoff Wydawnictwo: Helion

Zaloguj się aby dodać komentarz

Podobne artykuły

« Zastosowanie operatora UNIONZłączenia krzyżowe CROSS JOIN »

Podziel się ze znajomymi tym artykułem - udostępnij na FB lub wyślij e-maila korzystając z poniższych opcji:

Oferty pracy dla inżynierów
Oferty pracy dla inżynierów

Elektryk automatyk

Guz Technika Piekarnicza
Siemianowice Śląskie, śląskie
4500-6500 PLN

Product Engineer

SPX Flow Inc.
Bydgoszcz, kujawsko-pomorskie

Inżynier ds. Rozwoju Platform i Aplikacji Telewizyjnych

Play (P4 sp. zo.o.)
Warszawa, mazowieckie

Starszy Inżynier ds. Rozwoju Platform Strumieniowania i Dystrybucji Wideo

Play (P4 sp. zo.o.)
Warszawa, dowolny Region

Inżynier ds. Rozwoju Urządzeń Abonenckich – Smartfony, Tablety, Urządzenia Wearables

Play (P4 sp. zo.o.)
Warszawa, dowolny Region

Ekspert ds. Rozwoju Urządzeń Abonenckich STB

Play (P4 sp. zo.o.)
Warszawa, dowolny Region

wszystkie oferty
PracaTechniczna.pl

Strefainzyniera.pl - rynek, praca, rozwój - wszystko co ważne dla inżynierów

  • Dla pracodawcy
  • Artykuły
  • Praca
  • Publikacje
  • Popularne stanowiska
  • Offer in English
  • Regulamin
  • Regulamin dla klientów
  • Polityka prywatności
  • Polityka cookies
  • Kontakt

© 2011 - 2021 NetPortal

Mapa strony Letnisko blisko