SQL / XML - SQL/XML

Спецификации, относящиеся к SQL / XML или XML, являются частью 14 спецификации языка структурированных запросов (SQL). В дополнение к традиционным предопределенным типам данных SQL, например, NUMERIC, CHAR, TIMESTAMP, ... он вводит предопределенный тип данных XMLвместе с конструкторами, несколькими подпрограммами, функциями и сопоставлениями типов данных XML-SQL для поддержки обработки и хранения XML в базе данных SQL .

Технические характеристики

Спецификация определяет тип данных XML, функции для работы с XML, включая построение элементов, отображение данных из реляционных таблиц, объединение фрагментов XML и встраивание выражений XQuery в операторы SQL . Функции, которые могут быть встроены, включают XMLQUERY (который извлекает XML или значения из поля XML) и XMLEXISTS (который определяет, соответствует ли выражение XQuery).

Дополнительная информация и примеры функций SQL / XML представлены по внешним ссылкам ниже.

Стандартное соответствие

Результат объективной оценки Вагнером соответствия стандарту SQL / XML : 2006 Oracle 11g Release 1, MS SQL Server 2008 и MySQL 5.1.30 показан в следующей таблице, в которую были включены данные для PostgreSQL 9.1 и IBM DB2. добавлено:

Oracle 11g, выпуск 1 IBM DB2 9.7 MS SQL Server 2008 MySQL 5.1.30 PostgreSQL 9.1
Тип данных XML частичный (Oracle называет тип данных XMLType вместо XML) Высокая Высокая Нет Частичное
Предикаты SQL / XML Высокая Высокая Частичное Нет Частичное
Функции SQL / XML Высокая Высокая Частичное Низкий Высокая

ПРИМЕЧАНИЕ: только Oracle, IBM DB2 и MS-SQL-Server были дополнены XQuery .

Примеры

В приведенном ниже примере запроса SQLXML в качестве вывода используется тип SQLXML (протестирован в DB2 9.7 и Oracle 11g):

SELECT XMLELEMENT(NAMEs "PhoneBook", -- root element name
                  XMLAGG(           -- aggregation over the rows	
                  XMLELEMENT(NAME "Contact",                                                  
                  XMLATTRIBUTES(cust.FIRST_NAME AS "Name",
                                cust.TEL)
                              )
                        )
                  )
FROM TMP.CUSTOMER AS cust;

И вывод:

<PhoneBook>
    <Contact Name="Daniel" TEL="788255855"/>
    <Contact Name="Martin" TEL="889665447"/>
    <Contact Name="Eva"    TEL="111222333"/>
    <Contact Name="Alena"  TEL="444555666"/>
    <Contact Name="Oliver" TEL="777888999"/>
    <Contact Name="George" TEL="444882446"/>
    <Contact Name="Jamie"  TEL="123456789"/>
</PhoneBook>

Образцы взяты из статьи javalobby.

Ссылки

  1. ^ Фундерберк, JE; Malaika, S .; Рейнвальд, Б. (2002), «Программирование XML с помощью SQL / XML и XQuery» (PDF) , IBM Systems Journal , 41 (4): 642–665, doi : 10.1147 / sj.414.0642 , получено 14 ноября 2011 г.
  2. ^ a b Вагнер, Майкл (2010), "1. Auflage", SQL / XML: 2006 - Evaluierung der Standardkonformität ausgewählter Datenbanksysteme , Diplomica Verlag, ISBN 978-3-8366-9609-8
  3. ^ Айзенберг, Эндрю; Мелтон, Джим (2004), "Достижения в SQL / XML" (PDF) , SIGMOD Record , 33 (3): 79, DOI : 10,1145 / 1031570,1031588 , получен 14 ноября 2011
  4. ^ Айзенберг, Эндрю; Мелтон, Джим (2002), «SQL / XML делает хороший прогресс» (PDF) , SIGMOD Record , 31 (2): 101, CiteSeerX  10.1.1.109.4867 , doi : 10.1145 / 565117.565141 , получено 14 ноября 2011 г.
  5. ^ Соответствие PostgreSQL ISO 9075-14 (SQL / XML) , в документации PostgreSQL 9.1.
  6. ^ Функции XML PostgreSQL 9.1, в документации PostgreSQL 9.1.
  7. ^ Кек, Даниэль (2013), SQLX - От БД прямо к XML и обратно , Javalobby.org

внешние ссылки