Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

Podobne dokumenty
XML extensible Markup Language 7

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Bazy danych dokumentów XML wykład 2 XQuery

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

XQuery. sobota, 17 grudnia 11

Język SQL. Rozdział 2. Proste zapytania

Bazy dokumentów XML. Język XML. extensible Markup Language

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Przykładowy dokument XML

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

SQL do zaawansowanych analiz danych część 1.

DB2 XML w relacyjnych bazach danych wstęp do wprowadzenia. Kuba Pochrybniak

Język XML Query. Czym jest XML Query? Po co XML Query? Tomasz Traczyk. Czym jest XML Query? Wprowadzenie do składni języka.

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Ćwiczenie zapytań języka bazy danych PostgreSQL

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis

Standard SQL/XML. Wprowadzenie do XQuery

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Operacja PIVOT w języku SQL w środowisku Oracle

Oracle11g: Wprowadzenie do SQL

Wprowadzenie do języka SQL

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Podzapytania. Podzapytania nieskorelowane i skorelowane

2 Natywne bazy XML Języki zapytań XQuery Źródła 14

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Bazy danych dokumentów XML wykład 3 modyfikacja dokumentów

Podstawowe zapytania SELECT (na jednej tabeli)

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Język SQL podstawy zapytań

Bloki anonimowe w PL/SQL

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Język XML Query. Tomasz Traczyk. Politechnika Warszawska e mail:

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 03

2 Natywne bazy XML Języki zapytań XQuery Źródła 18

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

SQL (ang. Structured Query Language)

Spis treści. Przedmowa

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

PODSTAWY BAZ DANYCH 13. PL/SQL

Język PL/SQL. Rozdział 2. Kursory

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Przestrzenne bazy danych Podstawy języka SQL

Języki XPath i XQuery

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Kursor. Rozdział 10a Kursory. Otwieranie kursora. Deklarowanie kursora

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Optymalizacja poleceń SQL Metody dostępu do danych

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Języki XPath i XQuery

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Język SQL. Rozdział 8. Język manipulowania danymi DML

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści

Temat : SBQL 1 obiektowy język zapytań.

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Model semistrukturalny

Deklarowanie kursora

Przykładowy dokument XML

Laboratorium Bazy danych SQL 2

PODZAPYTANIE (SUBSELECT)

Bazy Danych i Usługi Sieciowe

Języki XPath i XQuery

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

System operacyjny Linux

Widok Connections po utworzeniu połączenia. Obszar roboczy

Laboratorium Bazy danych SQL 3 1

Zaawansowane bazy danych i hurtownie danych semestr I

Procedury i funkcje składowane

Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis

Language INtegrated Query (LINQ)

XML w bazie danych IBM DB2

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Microsoft SQL Server Podstawy T-SQL

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

15. Funkcje i procedury składowane PL/SQL

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

XML w bazach danych i bezpieczeństwie

Technologie baz danych WYKŁAD 7: Wyjątki

Wstęp do informatyki- wykład 9 Funkcje

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Klasyczna Analiza Danych

Przykładowe B+ drzewo

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Obiektowe bazy danych

Transkrypt:

Cechy języka XQUERY Język funkcyjny o wszystkie konstrukcje języka są wyrażeniami zwracającymi wartość o można je zagnieżdżać o wartości zwracane przez wyrażenia są tzw. sekwencjami ( w sensie XPath 2.0) Charakter przetwarzanej informacji o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment Format języka Sekwencje o wielkość liter ma znaczenie o słowa kluczowe pisze się małymi literami uporządkowany ciąg jednostek węzłów lub wartości atomowych pojedyncza jednostka jest tożsama z jednoelementową sekwencją porządek w sekwencji zgodny z porządkiem dokumentu (jeśli nie użyto klauzuli order by ) jawny zapis sekwencji Źródła danych ścieżka XPath użyta w XQuery musi zaczynać się od źródła danych funkcje wbudowane : doc( adres pliku xml ) udostępnia dane zewnętrzne- repozytorium XML DB ora:view(" nazwa tabeli relacyjnej " ) w Oracle Wyrażenia FLWOR - akronim słów: FOR, LET, WHERE, ORDER BY, RETURN pozwala przejść po elementach zadanej sekwencji ( klauzula for ) zdefiniować zmienne pomocnicze ( klauzula let ) odfiltrować niepotrzebne elementy ( klauzula where ) uporządkować to, co pozostanie ( klauzula order by ) przekazać wynik w odpowiedniej postaci ( klauzula ) przykłady: for $k in doc( plik.xml )//ksiazka let $a:=$k/autorzy/autor where count($a)=1 order by $k/cena $k/tytul KLAUZULA for 1

for $i in (<opis><miejsce>warszawa</miejsce></opis>,<kon/>) <opis><miejsce>warszawa</miejsce></opis> <kon/> for $i in (1,2), $j in (3,4) <wynik> i = $i, j = $j </wynik> <wynik> i =1, j =3 </wynik> <wynik> i =1, j =4 </wynik> <wynik> i =2, j =3 </wynik> <wynik> i =2, j =4 </wynik> KLAUZULA let let $i :=(3,5,7) <out> $i </out> <out> 3 5 7 </out> let $i :=(1,2), $j:=(3,4) <wynik> i = $i, j = $j </wynik> <wynik> i = 1 2 j = 3 4 </wynik> obie klauzule for i let służą do wiązania zmiennych, sposób w jaki to robią jest zupełnie różny for $w in (<alfa/>,<beta/>,<gama/>) <wynik>$w</wynik> <wynik><alfa/></wynik> <wynik><beta/></wynik> <wynik><gama/></wynik> let $w:=(<alfa/>,<beta/>,<gama/>) <wynik>$w</wynik> <wynik><alfa></alfa><beta></beta><gama></gama></wynik>

Przykłady: z wykorzystaniem tabel relacyjnych PRACOWNICY, ZESPOLY for $i in ora:view("pracownicy") <ROW><NUMER>1000</NUMER><NAZWISKO>Lech</NAZWISKO><ETAT>Dyrektor</ETAT> <ZATRUDNIONY>2001-01-01</ZATRUDNIONY> <PLACA>9240</PLACA><DODATEK>570</DODATEK><ID_ZESP>10</ID_ZESP></ROW> <ROW> for $i in ora:view("pracownicy")//nazwisko <NAZWISKO>Lech</NAZWISKO> <ODPOWIEDZ> for $i in ora:view("pracownicy")//nazwisko </ODPOWIEDZ> <ODPOWIEDZ> <NAZWISKO>Lech</NAZWISKO> <NAZWISKO>Kolski</NAZWISKO> </ODPOWIEDZ> Łączenie danych for $z in ora:view("zespoly")//id_zesp let $p:= ora:view("pracownicy")//row[id_zesp=$z] where count($p) > 3 order by avg($p/placa) descending <DUZY> $z,<liczba> count($p) </LICZBA>, <SREDNIA> avg($p/placa) </SREDNIA> </DUZY>

<DUZY><ID_ZESP>20</ID_ZESP><LICZBA>4</LICZBA><SREDNIA>3855</SREDNIA></DUZY> <DUZY><ID_ZESP>30</ID_ZESP><LICZBA>4</LICZBA><SREDNIA>3615</SREDNIA></DUZY> Grupowanie for $p in distinct-values ( ora:view("pracownicy")//etat/text()) let $l:=ora:view("pracownicy")//row[etat=$p] <ETAT Nazwa="$p"> count($l) </ETAT> <ETAT Nazwa="Dyrektor">1</ETAT> <ETAT Nazwa="Sekretarka">1</ETAT> <ETAT Nazwa="Adiunkt">4</ETAT> <ETAT Nazwa="Profesor">2</ETAT> <ETAT Nazwa="Stażysta">3</ETAT> <ETAT Nazwa="Asystent">3</ETAT> Porządkowanie for $p in ora:view("pracownicy")/row order by number($p/placa) descending <WYNIK> $p/nazwisko $p/placa </WYNIK> <WYNIK><NAZWISKO>Lech</NAZWISKO><PLACA>9240</PLACA></WYNIK> <WYNIK><NAZWISKO>Delecki</NAZWISKO><PLACA>5820</PLACA></WYNIK> <WYNIK><NAZWISKO>Bulski</NAZWISKO><PLACA>2040</PLACA></WYNIK> Podzapytania w zapytaniach Xquery można zagnieżdżać wyrażenia FLWOR najczęściej zagnieżdżenia występują w klauzuli RETURN jako argumenty funkcji w klauzuli WHERE pod postacią wyrażeń ilościowych zagnieżdżenia mogą wykorzystywać wcześniej przypisane zmienne <WYNIK> for $z in ora:view("etaty")//nazwa $z </WYNIK>

<WYNIK> <NAZWA>Referent</NAZWA> <NAZWA>Stażysta</NAZWA> <NAZWA>Sekretarka</NAZWA> <NAZWA>Asystent</NAZWA> </WYNIK> Wyrażenia warunkowe Xquery wspiera wyrażenia warunkowe oparte na konstrukcji IF THEN ELSE for $z in ora:view("zespoly")//id_zesp/text() <DZIAL> $z/../../nazwa if ($z=10) then for $p at $i in ora:view("pracownicy")/row where $p/id_zesp=$z $p/nazwisko else () </DZIAL> <DZIAL><NAZWA>NAZWA</NAZWA></DZIAL> <DZIAL><NAZWA>Administracja</NAZWA><NAZWISKO>Lech</NAZWISKO> <NAZWISKO>Koliberek</NAZWISKO></DZIAL> <DZIAL><NAZWA>Bazy danych</nazwa></dzial> <DZIAL><NAZWA>Multimedia</NAZWA></DZIAL> <SZEFOWIE> for $szefu in ora:view("pracownicy") let $leszcze := ora:view("pracownicy")/row[szef=$szefu/row/numer]/nazwisko where count($leszcze) >= 1 <SZEF NUMER="$szefu/ROW/NUMER"> $szefu/row/nazwisko <PODWLADNI> $leszcze </PODWLADNI> </SZEF> </SZEFOWIE> <SZEFOWIE> <SZEF NUMER="1000"><NAZWISKO>Lech</NAZWISKO> <PODWLADNI><NAZWISKO>Koliberek</NAZWISKO><NAZWISKO>Podgajny</NAZWISKO> <NAZWISKO>Delecki</NAZWISKO><NAZWISKO>Lubicz</NAZWISKO></PODWLADNI></SZEF> </SZEFOWIE>