濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 使用SQL查詢DB2 9中的XML數(shù)據(jù)

使用SQL查詢DB2 9中的XML數(shù)據(jù)

熱門標(biāo)簽:電銷外呼系統(tǒng)違規(guī) 濟(jì)南電銷外呼防封卡怎么樣 寧夏外呼系統(tǒng)方案 智能語(yǔ)音外呼系統(tǒng)打電話 怎樣在地圖標(biāo)注自己的信息 400電話怎么申請(qǐng)收費(fèi)標(biāo)準(zhǔn) 南京外呼系統(tǒng)租用 400電話辦理2273649Z空間 高德地圖標(biāo)注生成
正在看的db2教程是:使用SQL查詢DB2 9中的XML數(shù)據(jù)。

雖然 DB2 的混合體系結(jié)構(gòu)與之前的版本有很大的不同,但是要利用它的新 XML 功能并不難。如果您已經(jīng)熟悉 SQL,那么很快就可以將這方面的技能轉(zhuǎn)化到對(duì)存儲(chǔ)在 DB2 中的本地 XML 數(shù)據(jù)的處理上。通過(guò)本文就可以知道如何實(shí)現(xiàn)這一點(diǎn)。

DB2 Viper(就是DB2 9)中的 XML 特性包括新的存儲(chǔ)管理、新的索引技術(shù)以及對(duì)查詢語(yǔ)言的支持。在本文中,學(xué)習(xí)如何使用 SQL 或帶 XML 擴(kuò)展的 SQL(SQL/XML)查詢 DB2 XML 列中的數(shù)據(jù)。接下來(lái)的文章將討論 DB2 中新引入的對(duì)新興的業(yè)界標(biāo)準(zhǔn) XQuery 的支持,并探索 XQuery 在什么時(shí)候最有用。

您也許會(huì)感到驚訝,DB2 還支持雙語(yǔ)查詢 —— 即組合了來(lái)自 SQL 和 XQuery 的表達(dá)式的查詢。至于應(yīng)該使用哪種語(yǔ)言(或兩種語(yǔ)言結(jié)合使用)取決于應(yīng)用程序的需要,同時(shí)也取決于您本身所掌握的技能。其實(shí),將兩種查詢語(yǔ)言中的元素組合到一個(gè)查詢中并沒(méi)有您想像的那么難。這樣做還可以為搜索和集成傳統(tǒng) SQL 和 XML 數(shù)據(jù)提供強(qiáng)大的能力。

Sample 數(shù)據(jù)庫(kù)

本文中的查詢將訪問(wèn)在 “DB2 Viper 快速入門”(developerWorks,2006 年 4 月)中創(chuàng)建的 sample 數(shù)據(jù)庫(kù)。這里我們簡(jiǎn)短地回顧一下,sample 數(shù)據(jù)庫(kù)中 "items" 和 "clients" 表的定義:

清單 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 數(shù)據(jù),圖 2 顯示了 "clients.contactinfo" 列中的示例 XML 數(shù)據(jù)。隨后的查詢例子將引用其中某個(gè) XML 文檔或這兩個(gè)文檔中某些特定的元素。

圖 1. 存儲(chǔ)在 "items" 表 "comments" 列的示例 XML 文檔



圖 2. 存儲(chǔ)在 "clients" 表 "contactinfo" 列中的示例 XML 文檔



查詢環(huán)境

本文中的所有查詢都是交互式地發(fā)出的,您可以通過(guò) DB2 命令行處理器或 DB2 Control Center 中的 DB2 Command Editor 發(fā)出查詢。本文中的屏幕圖像和說(shuō)明主要基于后一種方式。(DB2 Viper 還附帶了一個(gè)基于 Eclipse 的 Developer Workbench,它可以幫助程序員圖形化地構(gòu)造查詢。但是,本文不討論應(yīng)用開(kāi)發(fā)問(wèn)題或 Developer Workbench。)

要使用 DB2 Command Editor,需啟動(dòng) Control Center 并選擇 Tools > Command Editor。這時(shí)將彈出如 圖 3 所示的窗口。在上面的面板中輸入查詢,單擊左上角的綠色箭頭運(yùn)行查詢,然后在下面的面板或 "Query results" 標(biāo)簽頁(yè)中查看輸出。

圖 3. DB2 Command Editor,可以從 DB2 Control Center 啟動(dòng)



純 SQL 查詢

即使您對(duì) SQL 所知有限,也仍然可以很輕松地查詢 XML 數(shù)據(jù)。例如,下面的查詢選擇 "clients" 表中的全部?jī)?nèi)容,包括存儲(chǔ)在 "contactinfo" 列的 XML 信息:

清單 2. 簡(jiǎn)單的 SELECT 語(yǔ)句



select * from clients



當(dāng)然也可以編寫更具選擇性的 SQL 查詢,使之包含關(guān)系投影和限制操作。下面的查詢檢索所有具有 "Gold" 狀態(tài)的客戶的 ID、姓名和聯(lián)系方式。請(qǐng)注意,"contactinfo" 列包含 XML 數(shù)據(jù),而其他兩列不包含 XML 數(shù)據(jù):

清單 3. 帶投影和限制的簡(jiǎn)單 SELECT 語(yǔ)句



select id, name, contactinfo

from clients

where status = 'Gold'



正如您所預(yù)料,您可以基于這樣的查詢創(chuàng)建視圖,下面的 "goldview" 可以說(shuō)明這一點(diǎn):

清單 4. 創(chuàng)建包含 XML 列的視圖



create view goldview as

select id, name, contactinfo

from clients

where status = 'Gold'



不幸的是,很多事情光用 SQL 是無(wú)法解決的。通過(guò)純 SQL 語(yǔ)句可以檢索整個(gè) XML 文檔(剛才已證明這一點(diǎn)),但是卻不能指定基于 XML 的查詢謂詞,也不能檢索 XML 文檔的某一部分或者 XML 文檔中特定的元素值。換句話說(shuō),使用純 SQL 不能對(duì) XML 文檔中的片段進(jìn)行投影、限制、連接、聚集或排序操作。例如,您不能單獨(dú)檢索 Gold 客戶的 email 地址或居住在郵政編碼為 "95116" 的地區(qū)的客戶的姓名。為了表達(dá)這些類型的查詢,需要使用帶 XML 擴(kuò)展的 SQL(SQL/XML)、XQuery 或結(jié)合使用這兩種查詢語(yǔ)言。

下一節(jié)將探討 SQL/XML 的幾個(gè)基本特性。在接下來(lái)的文章中,我們將學(xué)習(xí)如何編寫 XQuery 以及如何將 XQuery 與 SQL 結(jié)合使用。

SQL/XML 查詢

顧名思義,SQL/XML 被設(shè)計(jì)用來(lái)為 SQL 和 XML 兩者之間搭一座橋。它首先是 SQL 標(biāo)準(zhǔn)的一部分,經(jīng)過(guò)演化現(xiàn)在包括將 XQuery 或 XPath 表達(dá)式嵌入 SQL 語(yǔ)句的規(guī)范。XPath 是用于導(dǎo)航 XML 文檔以便發(fā)現(xiàn)元素或?qū)傩缘囊环N語(yǔ)言。XQuery 包括對(duì) XPath 的支持。

請(qǐng)務(wù)必注意,XQuery(和 XPath)表達(dá)式是大小寫敏感的。例如,引用 XML 元素 "zip" 的 XQuery 并不適用于名為 "ZIP" 或 "Zip" 的 XML 元素。SQL 程序員有時(shí)候很難記住大小寫敏感這一點(diǎn),因?yàn)?SQL 查詢語(yǔ)法允許使用 "zip"、"ZIP" 和 "Zip" 來(lái)引用同一個(gè)列名。

DB2 Viper 提供了超過(guò) 15 個(gè) SQL/XML 函數(shù),通過(guò)這些函數(shù)可以搜索 XML 文檔中的特定數(shù)據(jù),將傳統(tǒng)數(shù)據(jù)轉(zhuǎn)換成 XML,將 XML 數(shù)據(jù)轉(zhuǎn)換成關(guān)系數(shù)據(jù),以及執(zhí)行其他有用的任務(wù)。本文不討論 SQL/XML 的所有方面,而只是談到幾種常見(jiàn)的查詢挑戰(zhàn)

[1] [2] [3] [4] [5] [6] 下一篇

標(biāo)簽:貴港 茂名 仙桃 長(zhǎng)白山 惠州 潛江 唐山 平頂山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用SQL查詢DB2 9中的XML數(shù)據(jù)》,本文關(guān)鍵詞  使用,SQL,查詢,DB2,中的,XML,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用SQL查詢DB2 9中的XML數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于使用SQL查詢DB2 9中的XML數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永川市| 丁青县| 抚远县| 常德市| 禹城市| 屯门区| 浮山县| 澄迈县| 兴海县| 怀远县| 张掖市| 宁明县| 巩义市| 汉中市| 育儿| 宜昌市| 罗源县| 赤峰市| 宜都市| 山西省| 襄城县| 石林| 金阳县| 临洮县| 公主岭市| 织金县| 陇南市| 连江县| 克东县| 凤台县| 万源市| 宝应县| 科技| 沿河| 黄大仙区| 石屏县| 谢通门县| 监利县| 司法| 济宁市| 分宜县|