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

Z Studia Informatyczne
Wersja z dnia 14:24, 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

XQuery "w całości" (1/2)

XQuery "w całości" (1/2)


Przykładowe zapytanie XQuery przedstawione na slajdzie wykorzystuje wszystkie możliwe klauzule. Ich znaczenie w zapytaniu jest następujące

- Klauzula FOR wyszukuje w dokumencie zespoly.xml elementy wskazywane przez wyrażenie ścieżkowe //id_zesp. Każdy dopasowany element jest przypisywany zmiennej $d i powoduje utworzenie tzw. krotki. Klauzula FOR działa podobnie jak klauzule for w innych językach programowania wykorzystuje zmienne do iteracji po określonych wartościach.

- Dla każdego przypisania zmiennej $d klauzula LET przypisuje zmiennej $e zbiór takich elementów pracownik, które posiadają podelement id_zesp o zawartości identycznej z wartością zmiennej $d. Elementy pracownik wyszukiwane są z dokumentu o nazwie pracownicy.xml.

- W wyniku działania klauzul FOR i LET otrzymujemy tzw. strumień krotek. Liczba krotek zależy od klauzuli FOR, natomiast liczba zmiennych w krotce zależy od klauzul FOR i LET. W naszym przykładzie liczba krotek jest równa liczbie elementów id_zesp w dokumencie zespoly.xml. Każda krotka zawiera parę zmiennych $d i $e posiadających określone wcześniej wartości.

- Zadaniem klauzuli WHERE jest selekcja strumienia krotek utworzonych za pomocą klauzul FOR i LET. W naszym przykładzie klauzula WHERE filtruje ten strumień pozostawiając tylko te krotki, w których zbiór elementów pracownik przypisanych do zmiennej $e składa się, z co najmniej 10 elementów.

- Zadaniem klauzuli ORDER BY jest odpowiednie posortowanie wynikowych krotek. W powyższym przykładzie krotki zostaną posortowane wg średniej wartości elementów placa_pod znajdujących się w elementach pracownik przypisanych do zmiennej $e.

- Na zakończenie klauzula RETURN konstruuje wynik zapytania. W naszym przykładzie każda krotka za pomocą klauzuli RETURN stworzy element duzy-zespol, którego zawartością będzie kolejno: element $d (id_zesp), element liczba-pracowników którego zawartością będzie liczba będąca ewaluacją wyrażenia count($e) oraz element srednia-placa z zawartością wynikającą z wyrażenia avg($e/placa_pod)


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