Podzapytanie jest wyrażeniem SELECT wewnątrz jakiegoś innego polecenia.
Przykład:
SELECT * FROM tab1 WHERE col1 = (SELECT col1 FROM tab2);
W tym przykładzie SELECT * FROM tab1 jest zapytaniem zewnętrznym, natomiast SELECT col1 FROM tab2 jest podzapytaniem. Mówi się, że podzaptanie jest zagnieżdżone w zapytaniu zewnętrznym, przym możliwe jest zagnieżdżanie wielokrotne (głębokie). Podzapytanie musi być zawsze otoczone nawiasami okrągłymi.
Główne zalety stosowania podzapytań:
-
Pozwalają na izolację części zapytań, co czyni je klarowniejszymi, i umożliwia oddzielenie uzyskiwania jednych informacji od drugich w jednym zapytaniu.
-
Dostarczają mechanizmów, dzieki którym można stosować często czytelniejsze metody uzyskiwania danych, które inaczej musiałyby być uzyskiwane przy pomocy znacznie bardziej skomplikowanych i mało czytelnych zapytań.
-
W opini wielu użytkowników podzapytań, podzapytania są bardziej czytelne niż odpowiednie polecenia zbudowane bez używania podzapytań. W rzeczy samej, to z powodu podzapytań nazwano język służący do operacji na bazach danych językiem SQL - STRUKTURALNYM JĘZYKIEM ZAPYTAŃ (ang. Structured Query Language).
Oto przykład ilustrujący sposób używania podzapytań:(patrz Listing 1.0)
Listing
DELETE FROM t1
WHERE s11 > ANY
(SELECT COUNT(*) /* komentarz */ FROM t2
WHERE NOT EXISTS
(SELECT * FROM t3
WHERE ROW(5*t2.s1,77)=
(SELECT 50,11*s1 FROM t4 UNION SELECT 50,77 FROM
(SELECT * FROM t5) AS t5)));
Ranga: Administrator serwisu Punktów: 0