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 .

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.

  1. 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
  2. Bibliografia Linki zewnętrzne   _ _ _ _ _
  3. ^ 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
  4. ^   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
  5. ^ Zgodność PostgreSQL z ISO 9075-14 (SQL/XML) , w dokumentacji PostgreSQL 9.1.
  6. ^ PostgreSQL 9.1 Funkcje XML , w dokumentacji PostgreSQL 9.1.
  7. ^ Kec, Daniel (2013), SQLX - Od DB prosto do XML iz powrotem , Javalobby.org

Linki zewnętrzne