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

使用 XQuery 查詢 DB2 XML 資料:語法差異與實戰範例

     編輯:DB2 教學

背景

DB2 Viper 新架構支援表格與階層資料結構。前文已介紹建立資料庫物件、載入 XML 資料及使用 SQL/XML 操作。本文聚焦 DB2 對 XQuery 的原生支援。

DB2 將 XQuery 視為第一類語言,允許直接撰寫 XQuery 運算式,無須包裝在 SQL 中。查詢引擎原生處理 XQuery,解析、優化皆不需轉譯為 SQL。當然,混合 SQL/XQuery 的「雙語查詢」也能被優化處理。

XQuery 與 SQL 核心差異

特性XQuerySQL
資料模型階層結構,有順序扁平表格,基於集合,無順序
導航支援路徑運算式純 SQL 不支援
型別系統支援有型別與無型別資料皆有明確型別定義
空值無 NULL(XML 忽略缺失資料)使用 NULL 表示缺失/未知
回傳結果XML 資料序列各型別結果集

更多差異請參閱即將出版的 IBM Systems Journal。

範例資料庫

本文查詢參考 DB2 Viper 快速入門 (developerWorks, 2006/04) 建立的樣本表:

清單 1. 表定義

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 顯示 items.comments XML 範例;圖 2 顯示 clients.contactinfo XML 範例。後續查詢將引用這兩份文件中的元素。


圖 1. items 表 comments 欄位 XML 範例


圖 2. clients 表 contactinfo 欄位 XML 範例

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