亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > DB2 > 正文

使用SQL查詢DB2 9中的XML數據

2020-01-31 14:52:42
字體:
來源:轉載
供稿:網友
正在看的db2教程是:使用SQL查詢DB2 9中的XML數據。

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

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

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

Sample 數據庫

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

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

使用SQL查詢DB2 9中的XML數據(圖一)

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

使用SQL查詢DB2 9中的XML數據(圖二)

查詢環境

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

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

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

使用SQL查詢DB2 9中的XML數據(圖三)

純 SQL 查詢

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

清單 2. 簡單的 SELECT 語句



select * from clients



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

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



select id, name, contactinfo

from clients

where status = 'Gold'



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

清單 4. 創建包含 XML 列的視圖



create view goldview as

select id, name, contactinfo

from clients

where status = 'Gold'



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

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

SQL/XML 查詢

顧名思義,SQL/XML 被設計用來為 SQL 和 XML 兩者之間搭一座橋。它首先是 SQL 標準的一部分,經過演化現在包括將 XQuery 或 XPath 表達式嵌入 SQL 語句的規范。XPath 是用于導航 XML 文檔以便發現元素或屬性的一種語言。XQuery 包括對 XPath 的支持。

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

DB2 Viper 提供了超過 15 個 SQL/XML 函數,通過這些函數可以搜索 XML 文檔中的特定數據,將傳統數據轉換成 XML,將 XML 數據轉換成關系數據,以及執行其他有用的任務。本文不討論 SQL/XML 的所有方面,而只是談到幾種常見的查詢挑戰

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91丝袜美腿美女视频网站| 日韩在线观看免费高清| 欧美一级淫片播放口| 尤物九九久久国产精品的分类| 欧美电影免费看| 国产精品一区二区久久| 精品久久中文字幕久久av| 91成人在线观看国产| 亚洲男人第一av网站| 91色中文字幕| 成人av番号网| 日韩国产欧美区| 色系列之999| 欧美性理论片在线观看片免费| 69国产精品成人在线播放| 精品福利在线看| 欧美日本国产在线| 久久中文字幕国产| 久久影视电视剧免费网站| 久久久精品日本| 伊人伊人伊人久久| 欧美夜福利tv在线| 日韩一区二区三区在线播放| 亚洲欧美日韩网| 日韩有码在线播放| 欧美电影在线观看完整版| 2019中文字幕免费视频| 性亚洲最疯狂xxxx高清| 在线日韩精品视频| 亚洲视频在线免费观看| 久青草国产97香蕉在线视频| 日韩经典中文字幕| 欧美亚洲激情视频| 欧美日韩免费观看中文| 亚洲综合在线中文字幕| 亚洲国产中文字幕久久网| 亚洲区bt下载| 国产精品18久久久久久麻辣| 国产成人一区二区在线| 国产在线视频不卡| 日韩精品在线免费| 91精品国产91久久久久福利| 欧美剧在线观看| 国产欧美精品日韩| 国产精品亚洲片夜色在线| 日韩av在线影视| 亚洲视频自拍偷拍| 57pao成人永久免费视频| 97视频在线观看免费| 亚洲成人1234| 欧美成人精品影院| 菠萝蜜影院一区二区免费| 久久成人精品视频| 日韩av不卡电影| 一本大道香蕉久在线播放29| 欧美日在线观看| 亚洲国产精品99久久| 91影院在线免费观看视频| 亚洲人成在线观看网站高清| 欧美亚州一区二区三区| 国模极品一区二区三区| 欧美日韩亚洲成人| 中文字幕在线看视频国产欧美在线看完整| 91国产精品电影| 亚洲电影免费观看高清完整版| 日韩中文字幕在线视频| 日韩精品视频观看| 欧美日韩一区二区三区在线免费观看| 亚洲男人天堂手机在线| 91亚洲午夜在线| 亚洲欧美视频在线| 91精品国产91久久| 欧美国产日韩xxxxx| 日韩一二三在线视频播| 国产精品视频xxx| 日本精品久久久| 2020国产精品视频| 欧美激情视频网址| 欧美中文在线免费| 91精品国产亚洲| 92裸体在线视频网站| 精品国产乱码久久久久酒店| 91久久久久久久久久| 日韩在线精品视频| 日韩国产高清视频在线| 亚洲精品在线观看www| 亚洲人免费视频| 久久久精品一区二区| 亚洲xxxx在线| 国产精品视频免费在线| 久久精品国产2020观看福利| 精品国产乱码久久久久久天美| 亚洲欧美精品一区| 色琪琪综合男人的天堂aⅴ视频| 亚洲欧洲日韩国产| 国产91ⅴ在线精品免费观看| 欧洲成人免费视频| 亚洲精品一区二区久| 国产大片精品免费永久看nba| 欧美激情一二区| 国自产精品手机在线观看视频| 在线视频欧美性高潮| 欧美激情一区二区三区高清视频| 国产精品对白刺激| 性欧美长视频免费观看不卡| 亚洲成色777777在线观看影院| 欧美野外猛男的大粗鳮| 亚洲第一区在线| 欧美激情精品久久久久久蜜臀| 国产精品日韩av| 91网站免费观看| 亚洲精选在线观看| 91豆花精品一区| 日韩毛片中文字幕| 欧美黄色性视频| 日本午夜人人精品| 午夜精品久久久99热福利| 久久久久久亚洲精品不卡| 日韩乱码在线视频| 国产在线拍偷自揄拍精品| 久久天天躁日日躁| 啊v视频在线一区二区三区| 国产精品男人的天堂| 亚洲精品在线看| 日韩中文字幕视频在线| 亚洲天堂av在线免费观看| 亚洲综合在线做性| 亚洲第一区在线| 日韩av影视综合网| 欧美激情一级精品国产| 久久九九免费视频| 欧美日韩电影在线观看| 青草青草久热精品视频在线网站| 亚洲精品www| 欧美亚州一区二区三区| 欧美精品videofree1080p| 91国产精品电影| 国产一区二区三区视频免费| 一区二区成人精品| 欧美日韩人人澡狠狠躁视频| 中文亚洲视频在线| 麻豆一区二区在线观看| 亚洲高清色综合| 欧美国产一区二区三区| 日韩高清免费在线| 清纯唯美亚洲综合| 国产欧美日韩中文字幕| 亚洲第一网站免费视频| 国产欧美亚洲精品| 日本一区二区在线免费播放| 午夜精品久久久久久久男人的天堂| 爽爽爽爽爽爽爽成人免费观看| 亚洲美女在线看| 懂色av一区二区三区| 国产精品xxx视频| 日韩一二三在线视频播| 最新国产精品亚洲| 久久综合免费视频影院| 日韩免费在线视频| 97超碰国产精品女人人人爽| 91超碰中文字幕久久精品| 国产精品h片在线播放| 午夜精品久久久久久久99黑人| 日韩欧美亚洲一二三区|