logo

SQL | Podzapytania w klauzuli From

Podzapytania SQL to cenne funkcje, które pozwalają nam osadzić jedno zapytanie w innym, co zwiększa znaczenie pobierania danych i manipulowania nimi w skomplikowany sposób. Służy do konfigurowania tymczasowych tabel lub wyników pośrednich, które będą później wykorzystywane przez zapytanie zewnętrzne.

Podzapytanie w klauzuli FROM

Klauzuli FROM można użyć do określenia wyrażenia podzapytania w języku SQL. Relacja wytworzona przez podzapytanie jest następnie wykorzystywana jako nowa relacja, na której zapytanie zewnętrzne jest wykorzystywane do dalszych operacji. Podzapytania wFROMKlauzula jest używana, gdy musimy utworzyć tymczasowy zbiór danych, który nie istnieje w żadnej fizycznej tabeli. Może to być niezwykle pomocne podczas pracy ze złożonymi zbiorami danych.

Oracle SQL nie jest równy

Zmienne korelacji z tabel, do których odwołują się klauzula FROM zapytania zewnętrznego, nie mogą być użyte bezpośrednio w podzapytaniach klauzuli FROM. Poniżej podano dwie składnie użycia podzapytania w klauzuli FROM używanej w różnych scenariuszach.



1. Proste podzapytanie wFROMKlauzula:

WYBIERZ kolumnę1 kolumnę2

FROM (WYBIERZ kolumna_x AS C1 kolumna_y FROM tabela WHERE warunek) AS podzapytanie_tabela

GDZIE warunek_zewnętrzny;

2. Podzapytanie wFROMKlauzula zJOIN:

WYBIERZ kolumnę1 kolumnę2

FROM (WYBIERZ kolumnę_x AS C1 kolumna_y FROM tabela WHERE PREDICATE_X) AS tabela2

formater ciągów

DOŁĄCZ do tabeli1 NA table2.some_column = table1.some_column

GDZIE PREDYKAT;

Parametry:

  • Podzapytanie : Wewnętrzne zapytanie ujęte w nawiasy. Pobiera dane, które będą działać jako tabela tymczasowa.
  • Alias : Podzapytanie musi mieć podany alias (subquery_table), do którego ma się odwoływać zewnętrzne zapytanie.
  • Zapytanie zewnętrzne : Zapytanie zewnętrzne może następnie pracować z tabelą tymczasową utworzoną przez podzapytanie stosujące filtry lub wykonujące dalsze operacje.

Jak działają podzapytania w klauzuli FROM

  • Ocena podzapytania : Podzapytanie w klauzuli from jest najpierw oceniane, a następnie wyniki oceny są zapisywane w nowej relacji tymczasowej. 
  • Zapytanie zewnętrzne : Po wykonaniu podzapytania i zwróceniu zbioru danych, zewnętrzne zapytanie jest oceniane, wybierając tylko te krotki z tymczasowej relacji, które spełniają predykat w klauzuli Where zapytania zewnętrznego.

Przykład użycia podzapytania w klauzuli FROM

Omówmy kilka przykładów z życia wziętych, aby zrozumieć, jak podzapytania w klauzuli FROM działają w praktyce. Tutaj mamy dwie tabele Instruktor tabela zawierająca informacje o instruktorach, w tym o ich zarobkach i dziale. Inny jest Dział tabela zawierająca informacje o różnych działach, w tym o budżecie działu.

Instruktor Tabela 

Identyfikator instruktoraNazwaDziałWynagrodzenie
44547KowalInformatyka95000
44541RachunekElektryczny55000
47778SamHumanistyka44000
48147ErykMechaniczny80000
411547BalsamTechnologia informacyjna65000
48898JenaCywilny50000

Dział Tabela

Nazwa działuBudżet
Informatyka100 000
Elektryczny80000
Humanistyka50000
Mechaniczny40000
Technologia informacyjna90000
Cywilny60000

Przykład 1: Znajdź wszystkich profesorów, których pensja jest większa niż średni budżet wszystkich wydziałów. 

W tym przykładzie wykorzystamy podzapytanie w klauzuli FROM do obliczenia średniego budżetu wszystkich działów, a następnie dokonamy porównania z pensjami instruktorów.

ipconfig na Ubuntu

Zapytanie:   

wiosna i wiosna mvc
SELECT I.InstructorID I.Name I.Department I.Salary  
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;

Wyjście  

Identyfikator instruktoraNazwaDziałWynagrodzenie
44547KowalInformatyka95000
48147ErykMechaniczny80000

Wyjaśnienie:

  • Średni budżet wszystkich działów relacji departamentu wynosi 70000.
  • Erik i Smith są jedynymi instruktorami w relacji instruktorskiej, których pensja przekracza 70000 i dlatego są obecni w relacji wyjściowej. 

Po co używać podzapytań w klauzuli FROM?

Stosowanie podzapytań w klauzuli FROM ma wiele zalet, jak podano poniżej:

  • Uproszczenie : Mogą uprościć złożone zapytania, dzieląc je na mniejsze, łatwiejsze do zarządzania części. Nie musisz jawnie tworzyć tabel tymczasowych w swojej bazie danych.
  • Poprawiona czytelność : użycie podzapytań w klauzuli FROM sprawia, że ​​zapytanie jest bardziej czytelne, ponieważ dzieli > Elastyczność : Podzapytania umożliwiają wykonywanie operacji, które w innym przypadku byłyby niewygodne, np. agregację lub filtrowanie w odniesieniu do innych zbiorów danych, bez konieczności tworzenia tabel pośrednich.

Wniosek

Podzapytania w klauzuli FROM umożliwiają nam zdefiniowanie  tymczasowe zestawy wyników które mogą być wykorzystywane przez zapytania zewnętrzne. Ułatwiają złożone operacje SQL, zwiększają czytelność zapytań i zapewniają elastyczność w filtrowaniu i agregowaniu danych. Umiejętność wykorzystania podzapytań w klauzuli FROM jest podstawową umiejętnością każdego praktyka SQL, szczególnie gdy ma się do czynienia ze złożonymi bazami danych lub gdy trzeba przeprowadzić skomplikowaną analizę danych.

Utwórz quiz