ZSBD-2st-1.2-w10.tresc-1.4-Slajd10

Z Studia Informatyczne
Wersja z dnia 14:23, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Klauzula FOR

Klauzula FOR


Klauzula FOR może zawierać wiele zmiennych. Każda zmienna może być związana z odrębnym wyrażeniem.

Klauzula FOR iteruje po każdej wartości uzyskanej na podstawie ewaluacji wyrażenia przypisanego do zmiennej. Oznacza to, że jeżeli wyrażenie przypisane do zmiennej $x wskazuje na 10 wartości w dokumencie źródłowym, to klauzula FOR utworzy 10 iteracji, w każdej z nich do zmiennej $x zostanie przypisana kolejna wartość z dokumentu źródłowego.

Użycie wielu zmiennych ma podobny skutek do zagnieżdżenia pętli w językach programowania. Dla każdej wartości zmiennej nadrzędnej wykonywana jest iteracja dla zmiennej podrzędnej.

Dla przykładu w pierwszym zapytaniu na slajdzie mamy dwie zmienne $i i $j. Zmienna $i jest zmienną nadrzędną – wystąpiła wcześniej w klauzuli FOR, natomiast $j jest zmienną podrzędną. A zatem dla każdego z dopasowań zmiennej $i zostanie wykonana iteracja przy użyciu zmiennej $j. Wyrażeniem przypisanym zmiennej $i jest (1, 2), natomiast wyrażeniem przypisanym zmiennej $j jest (3, 4). W efekcie wynikiem będzie strumień czterech krotek w postaci przedstawionej po prawej stronie zapytania.

W wyrażeniach przypisanych do zmiennych podrzędnych można używać zmiennych nadrzędnych tak jak ma to miejsce w przypadku drugiego zapytania umieszczonego na slajdzie. Zmiennej $z przypisane jest wyrażenie doc("zespoly.xml")//id_zesp. A zatem dla każdego elementu id_zesp w dokumencie zespoly.xml zostanie wykonana iteracja przy użyciu zmiennej $z. Zmiennej $p natomiast przypisane zostało wyrażenie, które wykorzystuje zmienną $z. W naszym przypadku dla każdej iteracji z użyciem zmiennej $z zostanie wykonana iteracja z użyciem zmiennej $p, której zostaną przypisywane elementy pracownik posiadające podelement id_zesp identyczny z wartością zmiennej $z.

Wynikowa kolejność krotek tworzonych przez klauzulę FOR jest znacząca, co oznacza, że nie może być zmieniona samoistnie. Do zmiany kolejności krotek służy klauzula ORDER BY.


<< Poprzedni slajd | Spis treści | Następny slajd >>