SQL/XML
Specyfikacje SQL/XML lub XML-Related są częścią 14 specyfikacji Structured Query Language (SQL). Oprócz tradycyjnych predefiniowanych typów danych SQL, takich jak NUMERIC, CHAR, TIMESTAMP, ...
wprowadza predefiniowany typ danych XML
wraz z konstruktorami, kilkoma procedurami, funkcjami i mapowaniami typów danych XML-to-SQL w celu obsługi manipulacji i przechowywania XML w bazie danych SQL .
- SQL:2003-14 definiuje podstawowe typy danych, odwzorowania, predykaty i funkcje.
- SQL:2006-14 , SQL:2008-14 i SQL:2011-14 rozszerzają starsze wersje i podejścia do XQuery .
Specyfikacja
Specyfikacja definiuje typ danych XML
, funkcje do pracy z XML, w tym konstruowanie elementów, mapowanie danych z tabel relacyjnych, łączenie fragmentów XML i osadzanie wyrażeń XQuery w instrukcjach SQL . Funkcje, które można osadzić, obejmują XMLQUERY (który wyodrębnia kod XML lub wartości z pola XML) i XMLEXISTS (który określa, czy wyrażenie XQuery jest dopasowane).
Dalsze informacje i przykłady funkcji SQL/XML znajdują się w linkach zewnętrznych poniżej.
Zgodność ze standardami
Wynik obiektywnej oceny przeprowadzonej przez Wagnera zgodności ze standardem SQL/XML :2006 Oracle 11g Release 1, MS SQL Server 2008 i MySQL 5.1.30 przedstawiono w poniższej tabeli, do której odniesiono dane dla PostgreSQL 9.1 i IBM DB2 dodany:
Oracle 11g wersja 1 | IBM DB2 9.7 | Serwer MS SQL 2008 | MySQL 5.1.30 | PostgreSQL 9.1 | |
---|---|---|---|---|---|
XML typu danych | Częściowe (Oracle nadaje typowi danych „XMLType” zamiast „XML”) | Wysoki | Wysoki | NIE | Częściowy |
Predykaty SQL/XML | Wysoki | Wysoki | Częściowy | NIE | Częściowy |
Funkcje SQL/XML | Wysoki | Wysoki | Częściowy | Niski | Wysoki |
Rozszerzenie XQuery | Tak | Tak | Tak | NIE | NIE |
Przykłady
Poniższe przykładowe zapytanie SQLXML ma typ SQLXML jako dane wyjściowe (testowane na DB2 9.7 i Oracle 11g):
SELECT XMLELEMENT ( NAZWY "PhoneBook" , -- nazwa elementu głównego XMLAGG ( -- agregacja po wierszach XMLELEMENT ( NAME " Contact " , XMLATTRIBUTES ( cust . FIRST_NAME AS " Name " , cust . TEL ) ) ) ) Z TMP . KLIENT JAKO klient ;
I wyjście:
Książka telefoniczna> <Nazwa kontaktu = "Daniel" TEL= "788255855" /> < Nazwa kontaktu= "Martin" TEL= "889665447" /> <Nazwa kontaktu = "Eva" TEL= "111222333" /> < Nazwa kontaktu= " Alena" TEL= "444555666" /> < Imię i nazwisko osoby kontaktowej= "Oliver" TEL= "777888999"
/> < Nazwa kontaktu= "George" TEL= "444882446" /> < Nazwa kontaktu= "Jamie" TEL= "123456789" /> </ Książka telefoniczna>
Próbki pochodzą z artykułu javalobby.
- Bibliografia _ Malaika, S.; Reinwald, B. (2002), „Programowanie XML z SQL / XML i XQuery” (PDF) , IBM Systems Journal , 41 (4): 642–665, doi : 10.1147/sj.414.0642 , dostęp 14 listopada 2011
- Bibliografia Linki zewnętrzne _ _ _ _ _
- ^ Eisenberg, Andrzej; Melton, Jim (2004), „Postępy w SQL / XML” (PDF) , SIGMOD Record , 33 (3): 79, doi : 10.1145/1031570.1031588 , pobrane 14 listopada 2011
- ^ Eisenberg, Andrzej; Melton, Jim (2002), „SQL / XML robi dobre postępy” (PDF) , SIGMOD Record , 31 (2): 101, CiteSeerX 10.1.1.109.4867 , doi : 10.1145/565117.565141 , pobrane 14 listopada 2011
- ^ Zgodność PostgreSQL z ISO 9075-14 (SQL/XML) , w dokumentacji PostgreSQL 9.1.
- ^ PostgreSQL 9.1 Funkcje XML , w dokumentacji PostgreSQL 9.1.
- ^ Kec, Daniel (2013), SQLX - Od DB prosto do XML iz powrotem , Javalobby.org
Linki zewnętrzne