Transact-sql - робота з xml, програмування для початківців

XML дуже популярний тип даних так як даними такого типу досить легко обмінюватися з безліччю різних додатків, тому програміст SQL повинен мати уявлення, про те, як зберігати ці дані і як їх обробляти на SQL.

Наприклад, в минулій статті про журнал змін даних таблиці ми зберігали старі і нові записи в простому текстовому вигляді, хоча могли використовувати для цього XML.

Отже, приступимо, для того щоб зберігати в таблиці тип даних XML для цього необхідно вибрати відповідний тип, він також називається xml. Запити будемо виконувати через Management Studio.

Як бачите все просто, ми створили таблицю, в якій два стовпи:

Id- ідентифікатор запису;

Xmldate - відповідно, якісь XML дані.

Тепер давайте запишемо туди що-небудь, для цього виконаємо простий запит insert

Тут ми просто в вручну розмітили xml документ і записали його в нашу таблицю. Для того щоб просто побачити дані в цій таблиці, xml відображається в читабельному вигляді, виконайте запит через оператор select:

Ви отримаєте дані види:

Функції Transact-sql для роботи з XML даними.

Дані функції називають методами, і почнемо ми з методу query.

Query - робить вибірку в самому xml документі, який зберігається в нашій таблиці, і приймає один параметр це рядок запиту до xml документу, тобто що саме ви хочете отримати з xml. Повертає також дані типу xml. Наприклад, вище ми створили таблицю кореневої тег catalog, а нам потрібно отримати тільки тег name, для цього виконайте наступний запит:

і у відповідь Ви отримаєте дані види:

Сподіваюся, сенс цього методу зрозумілий.

Далі розглянемо функцію modify.

Modify - як зрозуміло їх назви вона змінює дані xml. Приймає одні параметр це власне самі описано, як змінити xml документа. Використовується в конструкції update.

Приклади. Для видалення вузла використовуйте запит:

Тут ми видалили вузол lastname, для перевірки використовуйте запит select до даної таблиці.

Для вставки вузла використовуйте запит:

Тут ми додали вузол lastname назад в каталог. Для перевірки використовуйте той же самий запит select,

Для поновлення значення у вузлі використовуйте наступний запит:

Тут в першому вузлі name (ну він у нас один) змінили значення «Іван» на «Сергій».

Переходимо до методу value.

Value - повертає значення вузла. Дуже зручно використовувати, коли Ви хочете запитом одержати не xml документ, а його значення. Приймає два параметра, перший це звідки брати значення, а другий, який тип Ви при цьому хочете отримати.

Іноді потрібно запитом з таблиці ні з xml даними отримати дані xml, це теж можна зробити, наприклад, в наступному запиті ми записуємо в змінну типу XML рядок таблиці table з ідентифікатором 2, а потім просто отримаємо ці значення.

І ще один приклад для наочності (картинка нижче), він схожий на попередній, але в ньому ми просто підставляємо статичні дані.

Transact-sql - робота з xml, програмування для початківців

Схожі статті