国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

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

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

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

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

本文中的查詢將訪問在 “DB2 Viper 快速入門”(developerWorks,2006 年 4 月)中創(chuàng)建的 sample 數(shù)據(jù)庫。這里我們簡短地回顧一下,sample 數(shù)據(jù)庫中 "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ù)。隨后的查詢例子將引用其中某個 XML 文檔或這兩個文檔中某些特定的元素。

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



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



查詢環(huán)境

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

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

圖 3. DB2 Command Editor,可以從 DB2 Control Center 啟動



純 SQL 查詢

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

清單 2. 簡單的 SELECT 語句



select * from clients



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

清單 3. 帶投影和限制的簡單 SELECT 語句



select id, name, contactinfo

from clients

where status = "Gold"



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

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



create view goldview as

select id, name, contactinfo

from clients

where status = "Gold"



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

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

SQL/XML 查詢

顧名思義,SQL/XML 被設(shè)計用來為 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 包括對 XPath 的支持。

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

DB2 Viper 提供了超過 15 個 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)文章:
主站蜘蛛池模板: 亚洲美色综合天天久久综合精品 | 男女一级爽爽快视频 | 国产91免费 | 日本在线看小视频网址 | 成人午夜大片免费7777 | 欧美性色黄在线视 | 国产高清一区二区 | 99视频在线观看免费视频 | 国内精品久久久久久久久蜜桃 | 偷拍视频一区在线观看 | 日韩加勒比在线 | 天堂免费在线视频 | 欧美高清强视频 | 日韩一区精品 | 久久国产精品最新一区 | 国产原创91 | 国产亚洲精品久久久久91网站 | 国产一级强片在线观看 | 国产精品va一级二级三级 | 在线观看香蕉免费啪在线观看 | 日韩一区二区在线免费观看 | 欧美经典成人在观看线视频 | 精品视频一区二区三区在线观看 | 草草影院ccyy国产日本欧美 | 亚洲综合日韩欧美一区二区三 | 九九九免费视频 | 亚洲欧美日韩三级 | 国产孕妇孕交视频在线观看 | 精品国产综合区久久久久久 | 亚洲一级毛片在线观播放 | 国产一国产a一级毛片 | 欧美日韩精彩视频 | 久久网免费 | 成人黄色在线网站 | 成年人免费看 | 性欧美另类老妇高清 | 欧美另类交视频 | 美女视频永久黄网站免费观看韩国 | 欧美日韩一区二区在线观看 | 欧美在线一区二区三区 | 大尺度福利视频在线观看网址 |