XQuery. sobota, 17 grudnia 11

Podobne dokumenty
XML extensible Markup Language 7

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

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

PL/SQL. Funkcje wbudowane

Autor: Joanna Karwowska

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.

Wprowadzenie do baz danych

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Przykładowy dokument XML

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

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

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

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

Podstawowe zapytania SELECT (na jednej tabeli)

Autor: Joanna Karwowska

Bazy danych SQL Server 2005

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Systemy GIS Tworzenie zapytań w bazach danych

SQL - Structured Query Language. strukturalny język zapytań

PODZAPYTANIE (SUBSELECT)

Języki XPath i XQuery

Widok Connections po utworzeniu połączenia. Obszar roboczy

4. Funkcje. Przykłady

Oczywiście plik musi mieć rozszerzenie *.php

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

Przestrzenne bazy danych Podstawy języka SQL

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

Wprowadzenie do języka SQL

3. Podzapytania, łączenie tabel i zapytań

Podstawy języka SQL cz. 2

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

SQL (ang. Structured Query Language)

Wykład 5. SQL praca z tabelami 2

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Języki XPath i XQuery

Język SQL. Rozdział 3. Funkcje wierszowe

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Relacyjne bazy danych. Podstawy SQL

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

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

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Oracle PL/SQL. Paweł Rajba.

Języki XPath i XQuery

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Relacyjne bazy danych. Podstawy SQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Technologie baz danych

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

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

Język SQL. Rozdział 2. Proste zapytania

LibreOffice Calc VBA

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Standard SQL/XML. Wprowadzenie do XQuery

Autor: dr inż. Katarzyna Rudnik

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

Uruchomienie raportu w środowisku Oracle applications

Kiedy i czy konieczne?

SQL praca z tabelami 4. Wykład 7

Instrukcje DQL: SELECT. Zastosowanie SELECT, opcje i warianty

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Spis treści. Przedmowa

Złaczenia tablic: FROM, WHERE, JOIN

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

Podstawy programowania. Podstawy C# Tablice

Cw.12 JAVAScript w dokumentach HTML

Administracja i programowanie pod Microsoft SQL Server 2000

Przykładowy dokument XML

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Bazy danych dokumentów XML wykład 2 XQuery

Listy, krotki, słowniki, funkcje

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Technologie baz danych

Przydatne sztuczki - sql. Na przykładzie postgres a.

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.

PODSTAWY BAZ DANYCH 13. PL/SQL

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Zaawansowane aplikacje WWW - laboratorium

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wykład XII. optymalizacja w relacyjnych bazach danych

Instalacja Pakietu R

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

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

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Model semistrukturalny

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

SQL. Æwiczenia praktyczne

Extensible Markup Language III

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Transkrypt:

XQuery

XQuery XQuery pozwala na wydobywanie danych z dokumentów XML w sposób podobny do tego w jaki używany jest SQL do tabel w bazach danych. XQuery to język do wykonywania zapytań na dokumentach XML. Pozwala znaleźć i pobrać elementy i ich atrybuty z dokumentów XML. XQuery wykorzystuje wyrażenia XPath. XQuery 1.0 i XPath 2.0 wykorzystują ten sam model danych i wspierają te same funkcje i operatory. XQuery jest wspierany przez większość baz danych XQuery jest rekomendacją W3C

XQuery - przykład for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title

Hello world... Wyrażenie XQuery zwraca dokument XML Hello world <?xml version="1.0" encoding="utf-8"?> Hello world 2+2 <?xml version="1.0" encoding="utf-8"?> 4 current-time() <?xml version="1.0" encoding="utf-8"?> 11:25:19.517Z

XQuery Funkcja doc( ) jest wykorzystywana do otwarcia dokumentu XML. Jako parametr przyjmuje adres pliku. Do nawigacji po elementach XML wykorzystywane są wyrażenia XPath. doc("books.xml")/bookstore/book/title Pobranie wszystkich tytułów książek (wewnątrz znacznika bookstore będącego korzeniem drzewa)

"For, Let, Where, Order by, Return". FLWOR (czyt. flower ) - wyrażnie, które wspiera iterację i wiąże zmienne z pośrednimi wynikami. FLWOR może być porównane do SELECT - FROM - WHERE z języka SQL. For - tworzy sekwencję węzłów Let - wiąże węzły z sekwencji ze zmiennymi Where - filtruje węzły za pomocą wyrażeń logicznych Order by - sortuje węzły Return - zwraca uzyskany wynik dla każdego węzła

FLWOR - przykład Wybierz wszystkie książki: for $x in doc("books.xml")/bookstore/book których cena jest większa od 30 where $x/price>30 posortowane według tytułu order by $x/title zwróć ich tytuły return $x/title

Predykaty Predykaty mogą być wykorzystywane do ograniczenia wyświetlanych wyników. Możliwe jest wykorzystanie predykatów znanych z XPath, np. doc("books.xml")/bookstore/book[price<30] lub wykorzystanie klauzuli where : for $x in doc("books.xml")/bookstore/book where $x/price>30 return $x/title

Predykaty doc("osoby.xml")/osoby/osoba/imie[ends-with(., 'a')] for $x in doc("osoby.xml")/osoby/osoba/imie where ends-with($x, 'a') return $x

Pobranie danych z węzła return $x/title zwróci węzły title - w celu pobrania ich zawartości należy wykorzystać funkcję data( ) for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return data($x/title)

Zmienne lokalne { } let $x := 1 let $y := "some other stuff" let $z := $x + 1 return ( <x>{$x}</x>, <y>{$y}</y>, <y>{$z}</y> ) <?xml version="1.0" encoding="utf-8"?> <x>1</x><y>some other stuff</y><y>2</y>

Wartościowanie wyrażeń Zwrócenie pojedynczej zmiennej powoduje automatycznie jej wartościowanie let $x := 1 return $x <?xml version="1.0" encoding="utf-8"?> 1 Zwrócenie więcej niż 1 węzła - nawiasy okrągłe oddzielone przecinkami Umieszczenie wyrażenia (znajdującego się w ciągu znakowym) wewnątrz nawiasów klamrowych {} spowoduje wartościowanie tego wyrażenia let $x := 1 let $y := "some other stuff" let $z := $x + 1 return (<x>{$x}</x>, <y>{$y}</y>, <z>$z</z>) <?xml version="1.0" encoding="utf-8"?> <x>1</x><y>some other stuff</y><z>$z</z>

Łączenie zapytań let $doc := doc("uczelnia.xml") for $stud in $doc/uczelnia/studenci/student, $kier in $doc/uczelnia/kierunki/kierunek where $stud/@kierunekref=$kier/@id return <li>{data($stud)} : {data($kier)}</li>

Funkcje XPath/XQuery node-name(x) nazwa węzła x nilled(x) zwraca prawdę jeśli argument jest pusty (nil) data(x) zawartość wszystkich węzłów tekstowych wewnątrz węzła x base-uri(x) document-uri(x)

Funkcje XPath/XQuery number(arg) - przekształca argument do liczby number('100') => 100 abs(num) - wartość bezwzględna abs(3.14) => 3.14 abs(-3.14) => 3.14 ceiling(num) - "sufit" ceiling(3.14) => 4 floor(num) - "podłoga" floor(3.74) => 3 round(num) - zaokrąglenie liczby do najbliższej liczby całkowitej round(3.14) => 3 round-half-to-even() - zaokrąglenie liczby *.5 do całkowitej liczby parzystej round-half-to-even(1.3) => 1 round-half-to-even(1.5) => 2 round-half-to-even(2.5) => 2 round-half-to-even(2.7) => 3

Funkcje XPath/XQuery string(arg) wartość argumentu przekształcona do stringa string(314) => "314" codepoints-to-string(int,int,...) zwraca stringa na podstawie sekwencji kodów ASCII codepoints-to-string(84, 104, 233, 114, 232, 115, 101) => 'Thérèse' string-to-codepoints(string) przekształca stringado dodów ASCII string-to-codepoints("thérèse") => 84, 104, 233, 114, 232, 115, 101 codepoint-equal(comp1,comp2) zwraca prawdę jeśli comp1 jest równe comp2 compare(comp1,comp2) zwraca -1 jeśli comp1 jets mniejsze niż comp2, 0 jeśli są równe, 1 jeśli comp1 jet większe niż comp2 compare('ala','ola') => -1 compare('ala','ala') => 0 compare('ola','ala') => 1

Funkcje XPath/XQuery concat(string,string,...) zwraca string będący połączeniem argumentów concat('xpath ','is ','FUN!') => 'XPath is FUN!' string-join((string,string,...),sep) łączy stringi za pomocą separatora sep string-join(('we', 'are', 'having', 'fun!'), ' ') => ' We are having fun! ' string-join(('we', 'are', 'having', 'fun!')) => 'Wearehavingfun!' substring(string,start,len), substring(string,start) zwraca podstring stringa, rozpoczynając od start o długości len (lub do końca stringa - jeśli len nie zdefiniowane) substring('beatles',1,4) => 'Beat' substring('beatles',2) => 'eatles'

Funkcje XPath/XQuery string-length(string) - długość stringa string-length('beatles') => 7 normalize-space(string) usuwa białe znaki na końcu i początku stringa, zastępuje wielokrotne białe znaki wewnątrz stringa pojedynczą spacją normalize-space(' The XML ') => 'The XML' upper-case(string), lower-case(string) konwertuje stringa do dużych/małych znaków upper-case('the XML') => 'THE XML' lower-case('the XML') => 'the xml' translate(s1,s2,s3) przekształca stringa s1 poprzez zastąpienie znaków należących do s2 odpowiadającymi im znakami s3 translate('10/11/2011-10:54','/-:','-.') => "10-11-2011 10.54" replace(string,pattern,replace) zwraca ciąg znaków utworzony poprzez zastąpienie wzorca pattern łańcuchem replace replace("bella Italia", "la", "*+") => "Bel*+ Italia"

Funkcje XPath/XQuery contains(string1,string2) zwraca prawdę jeśli string 1 zawiera string2 contains('xml','xm') => true contains('xslt','xm') => false starts-with(string1,string2), ends-with(string1,string2) zwraca prawdę jeśli string 1 zaczyna się/kończy się ciągiem znaków równym string2 starts-with('xml','x') => true ends-with('xml','x') => flase tokenize(string,pattern) dzieli string na tokeny, wykorzystując do podziału wzorzec pattern tokenize("xpath is fun", "\s+") => ("XPath", "is", "fun")

Funkcje logiczne boolean(arg) zwraca wartość logiczną na podstawie liczby, ciągu znaków lub zbioru węzłów true() zwraca wartość true false() zwraca wartość false not(arg) konwertuje argument do wartości logicznej i zwraca jego zaprzeczenie not(true()) => false not(-4) => false

Data/czas datetime(date,time) tworzy obiekt daty i czasu datetime(xs:date('2006-08-15'), xs:time('12:30:45-05:00')) year-from-datetime(), month-from-datetime(), day-from-datetime(), hours-fromdatetime(), minutes-from-datetime(), seconds-from-datetime() zwraca poszczególne komponenty daty seconds-from-datetime(xs:datetime('2006-08-15t10:30:23')) => 23

Data/czas days-from-duration(d), hours-from-duration(d), minutes-from-duration(d), secondsfrom-duration(d) zwraca okres czasu przekształcony odpowiednio do liczby dni, godzin itd. minutes-from-duration( xs:daytimeduration('p1dt36h15m') ) => 15 days-from-duration( xs:daytimeduration('p1dt36h15m') ) => 2 minutes-from-duration( xs:daytimeduration('p1dt36h90m') ) => 90 Konstruktor xs:daytimeduration('padtbhcmds') a dni, b godzin, c minut, d sekund

Data/czas months-from-duration(xs:yearmonthduration), years-fromduration(xs:yearmonthduration) liczba miesięcy/lat w danym okresie czasu months-from-duration(xs:yearmonthduration('p1y20m')) => 8 years-from-duration(xs:yearmonthduration('p1y20m')) => 2 Konstruktor xs:yearmonthduration('paybm') a lat, b miesięcy

Data/czas adjust-date-to-timezone(date,timezone), adjust-time-totimezone(time,timezone) zwraca datę lub czas dla określonej strefy czasowej adjust-date-to-timezone(xs:date('2006-02-15-03:00'), xs:daytimeduration('- PT8H')) => 2006-02-14-08:00 adjust-time-to-timezone(xs:time('17:00:00-03:00'), xs:daytimeduration('- PT7H')) => 13:00:00-07:00

Funkcje statystyczne count((item,item,...)) zwraca liczbę elementów count((1,2,3)) => 3 avg((arg,arg,...)) zwraca średnią ze zbioru elementów avg((1,2,3,4)) 2.5 max((arg,arg,...)), min((arg,arg,...)) zwraca wartość maksymalną/minimalną z podanego zbioru max((1,2,3)) => 3 max(('a', 'm','k')) => 'm' min((1,2,3)) => 1 max(('a', 'm','k')) => 'a' sum(arg,arg,...) zwraca sumę (numeryczną) wartości wszystkich węzłów