日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用XQuery查詢DB2 XML數據

瀏覽:229日期:2023-03-24 09:22:41
正在看的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 將更詳細地討論這些語言的不同?,F在我們就探索一下 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 文檔



圖 2. 存儲在 “clients” 表的 “contactinfo” 列中的樣本 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 例子

與在 “用 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] 下一篇

標簽: DB2
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久av公交车 | 蜜桃av一区| 日韩中文字幕区一区有砖一区 | 成人在线观看免费视频| 日韩中文字幕不卡| 亚洲福利精品| 私拍精品福利视频在线一区| 久久精品国产网站| 国产精品天天看天天狠| 国产精品国码视频| 国产亚洲欧美日韩在线观看一区二区| 国产精品毛片| 久久国产精品久久久久久电车| 欧美午夜精彩| 美女久久一区| 国产精品二区影院| 日本久久二区| 国产极品嫩模在线观看91精品| 日韩欧美精品一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品伦理久久久久久| 国产精品扒开腿做爽爽爽软件| 蜜桃一区二区三区在线| 国产极品久久久久久久久波多结野 | 日韩中文字幕在线一区| 日本aⅴ精品一区二区三区| 久久香蕉网站| 久久午夜视频| av综合电影网站| 亚洲一区欧美| 麻豆一区在线| 妖精视频成人观看www| 久久av网站| 午夜av成人| 91精品一区| 天堂网在线观看国产精品| 国产精品分类| 综合欧美精品| 九一国产精品| 日韩1区在线| 麻豆免费精品视频| 亚洲开心激情| 国产精品色网| 欧美成人基地| 麻豆91小视频| 久久国产尿小便嘘嘘| 在线亚洲自拍| 日韩视频中文| 91精品韩国| 深夜福利视频一区二区| 国产精品jk白丝蜜臀av小说| 亚洲一区二区三区四区电影 | 国产日韩免费| 欧美视频久久| 国产精品免费看| 国产精品伦一区二区| 亚洲精品一区二区妖精| 国产不卡精品| 国产日产精品_国产精品毛片| 亚洲毛片在线| 亚洲女同中文字幕| 日韩av电影一区| 一本色道精品久久一区二区三区| 亚州精品视频| 女生影院久久| 欧美久久香蕉| 蜜臀91精品一区二区三区| 免费看日韩精品| 日韩精品第二页| 蜜桃久久久久| 黄色在线网站噜噜噜| 亚洲人成在线网站| 桃色av一区二区| 国产精品毛片| 午夜亚洲福利| 91久久亚洲| 伊人久久视频| 欧美色图国产精品| 亚洲综合三区| 综合亚洲视频| 欧美精品中文| 午夜久久av| 蜜桃久久av| 伊人成人网在线看| 日韩一区二区免费看| 亚洲精选av| 国产精品午夜一区二区三区| 亚洲精品.com| 久久91视频| 99久久亚洲精品蜜臀| 亚洲三级国产| 亚洲aa在线| 久久av综合| 麻豆精品蜜桃视频网站| 国产精品久久观看| 亚洲激情二区| 久久久久伊人| sm久久捆绑调教精品一区| 91亚洲国产成人久久精品| 国产麻豆综合| 日韩中文字幕av电影| 亚洲精品国产精品粉嫩| 久久精品色播| 久久精品资源| 欧美日中文字幕| 欧美女激情福利| 午夜精品影视国产一区在线麻豆| 美女一区网站| 免费看日韩精品| 国产不卡av一区二区| 中文字幕免费一区二区| 美女尤物国产一区| 午夜在线一区二区| 五月婷婷六月综合| 国产亚洲福利| 精品视频99| 日韩精品免费一区二区夜夜嗨| 九九综合在线| 亚洲在线久久| 日本va欧美va欧美va精品| 91欧美国产| 亚洲tv在线| 国产传媒在线观看| 欧美激情福利| а√天堂8资源中文在线| 国产精品v一区二区三区| 久久久精品国产**网站| 精品三级av| 国产一区二区三区天码| 青青久久av| 国产精品女主播一区二区三区| 亚洲黄页一区| 亚洲精品乱码日韩| 日韩av网站在线免费观看| 欧美精品三级在线| 日韩精品亚洲专区| 国产伦精品一区二区三区在线播放| 99国产一区| 国产亚洲精品精品国产亚洲综合| 欧美1区2区3| 99成人超碰| 男女男精品视频网| 国产精品宾馆| 中文字幕色婷婷在线视频| 久久亚洲在线| 日本综合精品一区| 福利在线一区| 亚洲中午字幕| 国产精品久久亚洲不卡| 久久国产电影| 国产色综合网| 国产福利91精品一区二区| 美女被久久久| 麻豆成人av在线| 综合在线一区| 99久久99视频只有精品| 欧美一区成人| 视频一区国产视频| 亚洲国产福利| 精品黄色一级片| 中文字幕日本一区| 欧美精品一二| 欧美精选视频一区二区| 国产精品蜜月aⅴ在线| 亚洲午夜精品久久久久久app| 欧美日韩18| 鲁大师影院一区二区三区| 国产99久久| 日韩久久精品| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产日韩中文在线中文字幕| 久久性天堂网| 蜜桃伊人久久| 亚洲一区日本| 五月天久久777| 激情五月综合| 免费国产自线拍一欧美视频| 久久一区二区三区电影| av高清一区| 亚洲精品一级二级| 久久精品国产68国产精品亚洲| 中文一区一区三区高中清不卡免费| 福利视频一区| 日韩欧美精品一区| 91成人精品| 亚洲最大av| 日本免费在线视频不卡一不卡二| 日本国产亚洲| 国产精品黄色片| 国产美女撒尿一区二区| 国产精品网址| 黑森林国产精品av| 99热免费精品| 国产探花在线精品| 欧美sss在线视频| 国产精品美女久久久浪潮软件| 欧美日韩 国产精品| 首页国产精品| 免播放器亚洲| 国产精品一区二区av交换|