Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Wyjście z Labiryntu - podsumowanie

Brawo, @name! Wyszedłeś z Labiryntu Zapytań, nie gubiąc nici Ariadny. Zagnieżdżone poszukiwania nie mają już przed Tobą tajemnic. To była jedna z najtrudniejszych części Wielkiej Biblioteki - wielu skrybów gubiło się w jej zaułkach na całe dni. Ty przeszedłeś przez nie pewnym krokiem.

Pamiętaj najważniejszą zasadę Labiryntu: zawsze czytaj zapytanie od środka na zewnątrz. Najpierw zrozum, co liczy lub zwraca podzapytanie wewnętrzne, a dopiero potem, jak korzysta z tego zapytanie zewnętrzne. Dzięki temu nawet najbardziej zawiłe zagnieżdżenie stanie się czytelne.

Czego się nauczyłeś

  • Podzapytanie to SELECT w nawiasach okrągłych, umieszczony wewnątrz innego zapytania.
  • Podzapytanie skalarne zwraca jedną wartość - świetne do porównań w
    WHERE
    (np. ze średnią
    AVG
    ) lub na liście kolumn
    SELECT
    .
  • Operator IN sprawdza, czy wartość należy do listy zwróconej przez podzapytanie;
    NOT IN
    działa odwrotnie.
  • Podzapytanie skorelowane odwołuje się do kolumny z zewnątrz i wykonuje się dla każdego wiersza.
  • EXISTS zwraca prawdę, gdy podzapytanie znajdzie choć jeden wiersz; NOT EXISTS - gdy nie znajdzie żadnego.
  • Tabela pochodna to podzapytanie w
    FROM
    . w MySQL wymaga aliasu.
  • UNION łączy zbiory i usuwa duplikaty, UNION ALL zachowuje wszystkie wiersze.
  • Podzapytania można zagnieżdżać i łączyć warunkiem
    AND
    .

Mapa korytarzy

| Narzędzie | Pytanie, na które odpowiada | |-----------|------------------------------| | Podzapytanie skalarne | "Jak ten wiersz wypada na tle obliczenia?" | |

IN
+ podzapytanie | "Czy wartość jest na tej liście?" | | Podzapytanie skorelowane | "Co po drugiej stronie pasuje do tego wiersza?" | |
EXISTS
/
NOT EXISTS
| "Czy powiązany zwój istnieje, czy go brak?" | | Tabela pochodna (
FROM
) | "Policz coś na wyniku innego zapytania" | |
UNION
/
UNION ALL
| "Połącz dwie listy w jedną" |

Co dalej?

W kolejnej lokacji wejdziemy do Sali Indeksów, gdzie nauczysz się przyspieszać poszukiwania - by Biblioteka odnajdywała zwoje w mgnieniu oka, nawet wśród setek tysięcy ksiąg. Ruszamy dalej!

@name

Przejdź do CodeWorlds