首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 綜合知識

使用 SQL 查詢 DB2 9 中的 XML 資料:SQL/XML 完整指南

     編輯:DB2 綜合知識

SQL 查詢 DB2 XML 資料入門

DB2 Viper 的混合架構雖與舊版大異,但若熟悉 SQL,即可迅速將技能轉移至原生 XML 資料處理。本文示範如何使用 SQL 與 SQL/XML 查詢 DB2 XML 欄位資料;後續文章將探討 XQuery 支援與雙語查詢技巧。

範例資料庫回顧

查詢範例基於「DB2 Viper 快速入門」中建立的 items 與 clients 表:

create table items (
  id int primary key not null,
  brandname varchar(30),
  itemname varchar(30),
  sku int,
  srp decimal(7,2),
  comments xml
);

create table clients (
  id int primary key not null,
  name varchar(50),
  status varchar(10),
  contactinfo xml
);

圖 1 與圖 2 分別展示 items.comments 與 clients.contactinfo 欄位的範例 XML 文件結構,後續查詢將引用其中特定元素。

items 表 comments 欄位 XML 範例

clients 表 contactinfo 欄位 XML 範例

查詢環境

所有查詢均可透過 DB2 命令列處理器或 Control Center 的 Command Editor 互動執行。啟動 Control Center,選擇 Tools > Command Editor,於上方面板輸入查詢,點擊綠色箭頭執行,結果顯示於下方面板或 Query results 標籤。

DB2 Command Editor 介面

純 SQL 查詢

即使 SQL 基礎薄弱,也能輕鬆查詢 XML 資料。範例:

-- 查詢 clients 表全部內容(含 XML 欄位)
select * from clients;

-- 篩選 Gold 等級客戶的 ID、姓名與聯繫資訊
select id, name, contactinfo
from clients
where status = 'Gold';

亦可基於此類查詢建立視圖:

create view goldview as
select id, name, contactinfo
from clients
where status = 'Gold';

純 SQL 的限制與 SQL/XML 解決方案

純 SQL 僅能擷取完整 XML 文件,無法指定基於 XML 的查詢謂詞、擷取文件片段或特定元素值(如單獨取得 Gold 客戶的 email、或郵遞區號 95116 的客戶姓名)。若需對 XML 片段進行投影、限制、聯結、彙總或排序,必須使用 SQL/XML、XQuery 或兩者結合。

SQL/XML 查詢基礎

SQL/XML 為 SQL 與 XML 搭橋,屬 SQL 標準一部分,允許在 SQL 陳述式中嵌入 XQuery 或 XPath 運算式。XPath 用於導航 XML 文件發現元素或屬性,XQuery 包含 XPath 支援。

關鍵提醒: XQuery/XPath 運算式區分大小寫。引用 zip 的查詢不適用於 ZIP 或 Zip 元素,這與 SQL 不區分欄位名稱大小寫不同。

DB2 Viper 提供 15 種以上 SQL/XML 函數,可搜尋 XML 特定資料、轉換傳統與 XML 資料格式等。本文聚焦常見查詢挑戰,後續將深入 XQuery 與混合查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved