亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:157日期: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ù)的處理上。通過(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)簽: DB2
相關(guān)文章:
主站蜘蛛池模板: 视频在线观看一区二区 | 欧美一级黄色带 | 欧美日韩免费在线视频 | 91视频社区 | 99久久精品免费看国产一区二区 | 婷婷色在线 | 国产精品久久久久999 | 91精品欧美一区二区综合在线 | 亚洲国产伦理 | v视界影院视频一区二区三区 | 日韩午夜在线视频不卡片 | 成免费网站 | 女人一级一级毛片 | 成人日韩视频 | 成人在激情在线视频 | 久久久久女人精品毛片 | 女性被躁视频 | 99久久精品自在自看国产 | 国产真实搭讪系列 | 黄色片视频网站 | 欧美国产成人在线 | 欧美一区二区三区精品影视 | 国产美女亚洲精品久久久综合 | 婷婷色激情| 亚洲福利国产 | 欧美大黄特黄一级毛片 | 国产一级毛片大陆 | 国产精品久久久久9999小说 | 久久99热这里只频精品6中文字幕 | 国产大片免费观看网站 | 朴妮唛1一30集福利在线播放 | 黄色片网址在线观看 | 国产啪精品视频网给免丝袜 | 国内真实实拍伦视频在线观看 | 亚州国产视频 | 日本69sex护士www | 欧美精品v日韩精品v国产精品 | 亚洲精品老司机福利在线播放 | 免费又色又爽的视频国产 | 日韩中文字幕在线观看视频 | 久久免费精彩视频 |