色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:136日期:2023-03-24 09:22:40
正在看的db2教程是:使用SQL查詢DB2 9中的XML數(shù)據(jù)。

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

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

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

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

本文中的查詢將訪問在 “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ā)出的,您可以通過 DB2 命令行處理器或 DB2 Control Center 中的 DB2 Command Editor 發(fā)出查詢。本文中的屏幕圖像和說明主要基于后一種方式。(DB2 Viper 還附帶了一個(gè)基于 Eclipse 的 Developer Workbench,它可以幫助程序員圖形化地構(gòu)造查詢。但是,本文不討論應(yīng)用開發(fā)問題或 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 語句



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 語句



select id, name, contactinfo

from clients

where status = "Gold"



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

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



create view goldview as

select id, name, contactinfo

from clients

where status = "Gold"



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

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

SQL/XML 查詢

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

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

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

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

標(biāo)簽: DB2
相關(guān)文章:
主站蜘蛛池模板: 亚洲情乱 | 看欧美的一级毛片 | 国产精品黄在线观看免费软件 | 亚洲精品国产福利一区二区三区 | 亚洲 欧美 日韩在线 | 毛片大片 | 成人看的一级毛片 | 99精品视频在线免费观看 | 欧美成人私人视频88在线观看 | 免费午夜不卡毛片 | 1024色淫免费视频 | 亚洲自偷自拍另类12p | 成人免费视频在 | 女人张开腿给人桶免费视频 | 精品视频一区二区三三区四区 | 久久精品久久精品 | 久草资源免费 | 高清视频 一区二区三区四区 | 欧美 亚洲 另类 自拍 在线 | 高清在线精品一区二区 | 欧美成年人视频 | 九九视频高清视频免费观看 | 女人国产香蕉久久精品 | 亚洲国产成人精品一区91 | 日本加勒比在线 | 国产成人免费高清视频 | 欧美一级毛片欧美一级成人毛片 | 三级视频在线 | 亚洲精品成人久久 | 欧美在线观看不卡 | 国产盗摄一区二区 | 日韩午夜免费视频 | 国产禁女女网站免费看 | 国产伦精品一区二区三区无广告 | 成人毛片在线播放 | 久久在线免费观看视频 | 青青影院一区二区免费视频 | 国产在线日韩在线 | 成人精品一区二区不卡视频 | 亚洲精品区一区二区三区四 | 我们2018在线完整免费观看 |