日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 數據庫 > DB2 > 正文

使用XQuery查詢DB2 XML數據

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

關于 XQuery
XQuery 在很多關鍵方面都與 SQL 有所不同,這很大程度上是因為這兩種語言是針對兩種具有不同特征的數據模型而設計的。XML 文檔包含層次結構,并且有其固有的順序。而基于 SQL 的數據庫管理系統所支持的表格數據結構是平面的(flat),并且是基于集合的;因此,行之間不存在順序。

這兩種數據模型的不同導致它們各自的查詢語言有很多基本的不同。例如,XQuery 支持路徑表達式,以允許程序員在 XML 的層次結構中導航,而純 SQL(沒有 XML 擴展)則不支持。XQuery 支持有類型的和無類型的數據,而 SQL 數據總是以指定類型定義的。XQuery 沒有 null 值,因為 XML 文檔會忽略缺失的或未知的數據。當然,SQL 使用 null 來表示缺失的或未知的數據值。XQuery 返回一系列的 XML 數據,而 SQL 則返回各種 SQL 數據類型的結果集。

這只是 XQuery 和 SQL 之間的基本不同點中的一部分。提供一份詳盡的列表超出了本文的范圍,不過即將發表的 IBM Systems Journal 將更詳細地討論這些語言的不同。現在我們就探索一下 XQuery 語言的一些基本方面,并看看如何使用它來查詢 DB2 Viper 中的 XML 數據。

樣本數據庫

本文中的查詢訪問在 “DB2 Viper 快速入門”(developerWorks,2006 年 4 月)中創建的樣本表。清單 1 給出了樣本數據庫中 “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 文檔

使用XQuery查詢DB2 XML數據(圖一)

圖 2. 存儲在 “clients” 表的 “contactinfo” 列中的樣本 XML 文檔

使用XQuery查詢DB2 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 中啟動

使用XQuery查詢DB2 XML數據(圖三)

XQuery 例子

與在 “用 SQL 查詢 DB2 XML 數據” 中一樣,本文將逐步講解一些常見的業務場景,并展示如何使用 XQuery 來滿足對 XML 數據的請求。本文還探索了需要將 SQL 嵌入在 XQuery 中的更復雜的情景。

XQuery 提供了一些不同類型的表達式,這些表達式可以隨意組合。每個表達式返回一系列的值,這些值又可以作為其他表達式的輸入。最外面的表達式的結果就是查詢的結果。

本文主要討論兩種重要的 XQuery 表達式:“FLWOR” 表達式和路徑表達式。FLWOR 表達式非常像 SQL 中的 SELECT-FROM-WHERE 表達式 ―― 它用于對由多項組成的一個列表進行迭代,并且可以選擇返回通過在每一項上進行計算得到的值。而路徑表達式則可以在分層的 XML 元素之間進行導航,并返回在路徑末端找到的元素。

與 SQL 中的 SELECT-FROM-WHERE 表達式類似,XQuery FLWOR 表達式可以包含數個以某個關鍵詞開頭的子句。在 FLWOR 表達式中,有以下用于作為子句開頭的關鍵字:

  • for:對輸入序列進行迭代,依次將一個變量綁定到每個輸入項
  • let:聲明一個變量并為之賦值,可能是一個包含多項的列表
  • where:指定過濾查詢結果的標準
  • order by:指定結果的排序順序
  • return:定義所返回的結果
XQuery 中的路徑表達式由一系列的 “步(step)” 組成,之間以斜杠隔開。在最簡單的形式中,每一步在 XML 層次中向下導航,以發現由前一步返回的元素的孩子。路徑表達式中的每一步還可以包含一個謂詞,用于過濾該步返回的元素,只保留滿足某種條件的元素。例如,假設變量 $clients 被綁定到包含 <Client> 元素的 XML 文檔的一個列表,則 4 步路徑表達式 $clients/Client/Address[state = "CA"]/zip 將返回居住在加利福尼亞的客戶的郵政編碼。

在很多情況下,可以任意使用 FLWOR 表達式或路徑表達式編寫查詢。

使用 DB2 XQuery 作為頂層查詢語言

要在 DB2 Viper 中直接執行 XQuery(而不是將它嵌入在 SQL 語句中),必須以關鍵字 xquery 作為查詢的開頭。這個關鍵字將指示 DB2 調用它的 XQuery 解析器來處理請求。注意,只有在使用 XQuery 作為最外層(頂層)語言的時候才需要這么做。如果是將 XQuery 表達式嵌入在 SQL 中,則不需要在語句之前加上 xquery 關鍵字。但是,本文使用 XQuery 作為基本語言,因此所有查詢之前都加上 xquery。

當 XQuery 被作為頂層語言時,它需要一個輸入數據的源。XQuery 獲得輸入數據的一種方式是調用一個名為 db2-fn:xmlcolumn 的函數,調用時帶一個參數,表明 DB2 表中 XML 列所在的表名和該列的列名。db2-fn:xmlcolumn 函數返回存儲在給定列中的一系列的 XML 文檔。例如,下面的查詢返回一系列包含客戶聯系方式信息的 XML 文檔:

清單 2. 返回客戶聯系方式數據的簡單 XQuery



x

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

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

圖片精選

欧美日韩中文字幕在线视频| 欧美另类久久久品| 黄污视频在线看| 日韩色在线观看| 国产福利第一页| 久久99精品久久久| 久久人人精品| 欧美日韩性视频一区二区三区| 欧美日韩精品欧美日韩精品| 欧美激情视频一区二区三区在线播放| 国产乱码在线观看| 在线视频国内一区二区| 国产欧美日韩精品综合| 精品婷婷伊人一区三区三| 精品视频1区2区3区| 国产视频中文字幕在线观看| 欧美日韩精品免费| 国产激情久久| 综合图区亚洲白拍在线| 粉嫩粉嫩芽的虎白女18在线视频| 欧美午夜精品在线| 欧美日韩一二三四| 欧美日韩中文字幕在线| 午夜影院在线观看欧美| 亚洲综合视频一区| 国产一级久久久| 国产一区在线精品| 日韩欧美99| 欧美一级免费在线观看| 日韩在线视频免费观看高清中文| 国产日韩av高清| 国产一级片在线| 国产黄色网页| 99pao成人国产永久免费视频| 日韩免费高清一区二区| 91精品在线视频观看| 日本亚洲欧美| 国产婷婷一区二区| 精品久久蜜桃| 精品日韩欧美在线| 日韩一级免费视频| 精品欧美不卡一区二区在线观看| 欧美日韩激情一区| 午夜成人鲁丝片午夜精品| 国产日韩精品在线看| 中文字幕欧美日韩精品| 中文 欧美 日韩| 国精品产品一区| 精品激情国产视频| 91精品国产入口| 国产欧美三级| 在线国产三级| 99精品999| 亚洲综合中文字幕在线| 日韩1区在线| 国产在线一在线二| 欧美日韩国产影片| 一区二区国产在线| 国产一区深夜福利| 日韩精品在线播放| 亚洲综合日韩| 免费视频久久| 高清一区二区| 欧美一级久久| 精品视频在线导航| 日韩精品视频在线免费观看| 欧美日韩一二| 久久久久久自在自线| 亚洲免费在线观看av| 精品国自产在线观看| www.精品av.com| 91精品免费在线观看| 国产午夜精品视频| 欧美日韩第一区日日骚| 国产久卡久卡久卡久卡视频精品| 国产三级精品在线观看| 亚洲 欧美 精品| 中文字幕 日韩 欧美| 日韩精品福利视频| 国产在线观看精品| 国产一区高清视频| 中文字幕在线播出| 亚洲福利在线看| 欧美日韩中文字幕| 91精品国产综合久久蜜臀| 麻豆精品视频入口| 日韩欧美专区在线| 久久婷婷国产| 欧美日韩综合高清一区二区 | 一区二区日韩视频| 国产区在线看| 中文字幕国产亚洲| 国产一卡2卡3卡四卡网站| 午夜亚洲福利| 国产在线不卡av| 久久欧美中文字幕| 99久热re在线精彩视频| 亚洲三级免费看| 91精品国产91| 日韩中文字幕视频网| 国产三级精品在线观看| 精品国产31久久久久久| 欧美天堂一区二区| 日本精品在线播放| 国产小视频免费在线观看| 中文字幕亚洲一区二区av在线| 午夜精品一区二区三区视频免费看| 国产永久免费高清在线观看| 91精品国产综合久久香蕉的特点| 午夜亚洲一区| 日韩国产91| 日韩精品综合在线| 国产拍揄自揄精品视频麻豆| 国产免费久久| 日韩中文欧美在线| a视频免费在线观看| 亚欧成人精品| 日韩精品在线观看视频| 久久精品国产2020观看福利| 91久久久久久久久| 欧美激情一区二区三区在线| 日本熟女一区二区| 美女在线视频一区| 精品视频国产| 在线视频1区2区| 国产一级片播放| 中文字幕第一页在线播放| 精品欧美日韩| 91精品免费在线观看| 国产日韩在线亚洲字幕中文| 欧美日韩三级在线| 欧美日韩精品综合| 国产婷婷色一区二区三区| 一区二区精品免费| 狠狠色综合色区| 久久久精品午夜少妇| 91九色在线看| 午夜精品免费视频| 中文字幕五月天| 国产日韩精品在线| 欧美一级日韩不卡播放免费| 国产欧美日韩成人| 国产欧美日韩最新| 久久视频一区| 国产福利不卡| 久久精品蜜桃| 日韩视频精品在线| 欧美日韩在线精品成人综合网| 国产一区不卡精品| 一区二区不卡久久精品| 一二三区精品视频| 99久热re在线精彩视频| 欧美日韩中文国产| 精品国产网站在线观看| 国产 欧美 在线| 亚洲免费在线视频一区 二区| 在线观看免费国产成人软件| 91精品国产综合久久久久久 | 久久久久久99精品| 天堂在线www天堂中文在线| 亚洲黄色片在线观看| 成人一区而且| 国产黄色一级片| 欧美在线视频第一页| 日韩色在线观看| 中文字幕在线中文字幕二区| www.av中文字幕| 欧美一卡2卡3卡4卡| 黄色资源在线观看| 一区二区不卡视频在线观看| 国产在线拍偷自揄拍精品| 亚洲专区一二三| 日韩精品在线网站| 中文字幕在线视频日韩| aaa欧美日韩| 中文字幕国产日韩| 久久精品一二三| 日韩国产一区久久| 欧美中文字幕视频| 一区二区视频在线观看免费的| 天堂在线一区二区三区| 中文字幕在线欧美| 午夜国产视频 | 婷婷中文字幕一区三区| 国产调教精品| 日本va欧美va精品发布| 尤物在线精品| 精品成a人在线观看| 欧美日韩人人澡狠狠躁视频| 亚洲国产欧美日韩精品| 久久精品在线观看| 亚洲福利一区二区三区| 婷婷综合福利| 国产欧美久久久精品影院| 91精品国产自产在线丝袜啪| 欧美日韩亚洲综合| 久久综合久久综合九色| 91精品视频播放| 成人欧美亚洲| 欧美日韩国产一区| 欧美日韩国产第一页| 国产福利免费观看| 在线中文免费视频| 欧美国产一级| 国产香蕉精品视频| 日韩欧美中文字幕精品| 精品视频999| 日韩国产欧美亚洲| 男人的天堂网av| 精品精品久久| 色综合婷婷久久| 欧美色视频一区二区三区在线观看| lutube成人福利在线观看| 精品视频久久| 在线观看免费国产小视频| 欧美日韩国产免费| 久久91精品久久久久久秒播| 久久人人精品| 国产视频中文字幕在线观看| 国产午夜精品视频| 日韩视频一区二区在线观看| av首页在线| 成人a在线视频免费观看| 在线观看免费国产成人软件| 91精品国产综合久久香蕉的特点| 日韩免费电影网站| 精品久久91| 精品久久九九| 国产中文在线播放| 99在线精品视频免费观看20| 亚洲va韩国va欧美va精品| 国产 日韩 欧美 综合 一区| 69堂精品视频在线播放| 日韩精品免费观看视频| 97国产视频| 在线观看av的网站| 久久精品电影| 国产aa精品| 午夜国产福利一区二区| 国产欧美 在线欧美| 一区二区三区久久| 欧美三级日韩三级| 国产欧美日韩最新| 人妻一区二区三区免费| 国产www.大片在线| 日韩欧美中文字幕在线播放| 亚洲成年人在线播放| 亚洲va中文字幕| 午夜黄色小视频| 91欧美日韩在线| 日韩一级二级三级| 一级网站免费观看| 亚洲一区视频在线观看视频| 欧美日韩视频免费播放| 日韩免费不卡avV| 国产天堂素人系列在线视频| 青青国产91久久久久久| 亚洲综合在线中文字幕| 国产男女av| 午夜伊人狠狠久久| 中文字幕日韩国产| 国产亚洲一区字幕| 91蜜桃在线视频| 国产欧美日韩中文久久| 国产一级片播放| 国产不卡精品在线| 中文字幕在线播出| 久久99精品久久久久婷婷| 在线不卡日本| 中文字幕日韩高清| 国产在线黄色片| 精品视频在线视频| 91吃瓜在线观看| 国产欧美日韩最新| 国产乱国产乱300精品| 国产在线中文字幕| 日韩欧美一级在线| 中文字幕亚洲国产| 日本精品在线中文字幕| 日韩三级视频在线| 免费在线视频一区二区| 日韩在线观看精品| 日韩视频在线观看视频| 中文字幕欧美日韩精品| 欧美日韩国产综合网| 精品在线观看一区| 国产免费不卡av| 国产主播中文字幕| 中文字幕狠狠干| www.狠狠| 亚洲午夜91| www.老鸭窝.com| 区日韩二区欧美三区| 国产黄色一级片| 欧美日韩国产免费观看| 欧美日韩一二| 中文字幕日韩在线视频| 一区二区三区精品久久久| 韩国av一区二区| 一区二区三区中文字幕在线观看| 日韩精品在线观| 日韩欧美高清在线视频| 精品国产欧美日韩| 国产在线精品国自产拍免费| 中文字幕在线日韩| 欧美中文字幕第一页| 中文字幕在线播放一区| 中文字幕在线视频久| 日韩在线不卡| 中文字幕精品在线| 91精品在线视频观看| 日本xxxwww免费视频| 国产一区日韩| 偷窥国产亚洲免费视频| 国产日韩精品在线看| 日韩精品免费视频一区二区三区| 高清1区2区| 中文字幕国产日韩| 国产欧美日韩中文字幕在线| 天堂在线中文| 一区二区欧美国产| 91久久久精品国产| 欧美日韩精品综合在线| 国产www在线观看| 日韩精品资源二区在线| 91精品国产网站| 九色蝌蚪视频在线| 日韩不卡在线观看| 国产黄色在线| 国产一区在线不卡| 影音先锋一区二区资源站| 国产欧美日韩综合| 天堂在线www天堂中文在线| 日韩三级视频中文字幕| 精人妻一区二区三区| 日韩一级网站| www.中文字幕在线观看| 精品一区二区三区中文字幕 | 伊人网站在线| 欧美高清一级片在线| 欧美日韩中文字幕精品| 国产福利一区二区在线精品| 国产久卡久卡久卡久卡视频精品| 欧美高清视频一区二区三区| 亚洲欧美视频一区二区三区| 日韩免费精品视频| 国产欧美日韩不卡| 精品一二三区视频| 日韩字幕在线观看| 一区二区不卡在线| 日韩欧美国产网站| 色综合影院在线| 日韩欧美国产午夜精品| 一本大道一区二区三区| 国产欧美日韩中文| 日韩在线视频一区| 中文字幕亚洲欧美| 精品免费视频| 日韩三级高清在线| 精品欧美久久久| 日韩欧美久久久| 国产一区不卡在线| aaa欧美日韩| 一区二区三区精品在线| 国产一区在线精品| 午夜视频在线观看一区| 白嫩少妇丰满一区二区| www.中文字幕在线| 亚洲综合欧美在线| 国产一级免费在线观看| 97caopor国产在线视频| 日韩欧美亚洲区| 日韩.com| 欧美一级搡bbbb搡bbbb| 欧美日韩在线精品一区二区三区激情综| 欧美久久综合性欧美| 日本黄色一区二区三区| 日韩精品a在线观看91| 国产嫩草影院久久久久| 在线视频日韩欧美| 日韩在线播放一区二区| 欧美日韩在线第一页| 国产精久久久久| 日韩欧美久久久| 欧美中日韩在线| 精品在线99| 日韩久久久精品| 成人a在线观看| 国产95在线|亚洲| 亚洲成在线观看| 粉嫩粉嫩芽的虎白女18在线视频| 亚洲免费精品| 99这里有精品视频| 日韩欧美一卡二卡| 久久中文免费视频| 91精品国产综合久久久久久| 日韩不卡一区二区| 久艹在线视频| 日韩在线视频免费观看高清中文 | 久久久久蜜桃|