SQL/XML
Спецификации SQL/XML или XML-связанные спецификации — это часть 14 спецификации языка структурированных запросов (SQL). В дополнение к традиционным предопределенным типам данных SQL, таким как NUMERIC, CHAR, TIMESTAMP, ...
он представляет предопределенный тип данных XML
вместе с конструкторами, несколькими подпрограммами, функциями и сопоставлениями типов данных XML-SQL для поддержки манипуляций и хранения XML в базе данных SQL .
- SQL:2003-14 определяет базовый тип данных, сопоставления, предикаты и функции.
- SQL:2006-14 , SQL:2008-14 и SQL:2011-14 расширяют старые версии и подходы к XQuery . [1]
Спецификация [ править ]
Спецификация определяет тип данных XML
, функции для работы с XML, включая конструирование элементов, сопоставление данных из реляционных таблиц, объединение фрагментов XML и встраивание XQuery выражений в операторы SQL . К функциям, которые можно встроить, относятся XMLQUERY (который извлекает XML или значения из поля XML) и XMLEXISTS (который определяет, соответствует ли выражение XQuery).
Дополнительная информация и примеры функций SQL/XML представлены по внешним ссылкам ниже. [2] [3] [4] .
Соответствие стандартам [ править ]
Результат объективной оценки Wagner соответствия стандарту SQL/XML :2006 Oracle 11g Release 1, MS SQL Server 2008 и MySQL 5.1.30 показан в следующей таблице. [2] , куда передаются данные для PostgreSQL 9.1, [5] [6] и добавлен IBM DB2:
Oracle 11g, выпуск 1 | IBM DB2 9.7 | MS SQL-сервер 2008 | MySQL 5.1.30 | PostgreSQL 9.1 | |
---|---|---|---|---|---|
Тип данных XML | Частичный (Oracle присваивает типу данных «XMLType» вместо «XML») | Высокий | Высокий | Нет | Частичный |
Предикаты SQL/XML | Высокий | Высокий | Частичный | Нет | Частичный |
SQL/XML-функции | Высокий | Высокий | Частичный | Низкий | Высокий |
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. [7] .
Ссылки [ править ]
- ^ Фундерберк, Дж. Э.; Малайка, С.; Рейнвальд, Б. (2002), «XML-программирование с использованием SQL/XML и XQuery» (PDF) , IBM Systems Journal , 41 (4): 642–665, doi : 10.1147/sj.414.0642 , получено 14 ноября 2011 г.
- ↑ Перейти обратно: Перейти обратно: а б Вагнер, Михаэль (2010), «1-е издание», SQL/XML:2006 — Оценка соответствия стандартам выбранных систем баз данных , Diplomica Verlag, ISBN 978-3-8366-9609-8
- ^ Айзенберг, Эндрю; Мелтон, Джим (2004), «Достижения в SQL/XML» (PDF) , SIGMOD Record , 33 (3): 79, doi : 10.1145/1031570.1031588 , получено 14 ноября 2011 г.
- ^ Айзенберг, Эндрю; Мелтон, Джим (2002), «SQL/XML добивается хороших результатов» (PDF) , SIGMOD Record , 31 (2): 101, CiteSeerX 10.1.1.109.4867 , doi : 10.1145/565117.565141 , получено 14 ноября 2011 г.
- ^ Соответствие PostgreSQL стандарту ISO 9075-14 (SQL/XML) в документации PostgreSQL 9.1.
- ^ XML-функции PostgreSQL 9.1 в документации PostgreSQL 9.1.
- ^ Кек, Дэниел (2013), SQLX — от БД прямо к XML и обратно , Javalobby.org
Внешние ссылки [ править ]