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

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

理解DB2 9中新的查詢:XQuery

瀏覽:37日期:2023-11-08 12:56:00

IBM 新的 DB2 9 為開發人員提供了一種更快、更有效的方式來管理關系數據庫中的 XML 文檔。然而,為了挖掘出更多的潛能,數據庫開發人員還需要在他們的武器庫中增加一種新的語法:XQuery。雖然 XQuery 學起來很簡單,但是它非常完善,足以構造更高級的耗時且費力的查詢。

進入 DB2 9 Developer Workbench。新的 Workbench 被打包成一個單獨的安裝程序,它取代了其前輩 DB2 Development Center。它基于 Eclipse 引擎,在 Visual XQuery Builder 中提供了新的高級 XML 功能,包括基于已有的 XML 字段或單獨的 XML 模式文檔可視化地設計 XQuery 的能力。Developer Workbench 還可以與 DB2 for z/OS 數據服務器一起使用。

Visual XQuery Builder

您可以在 SAMPLE 數據庫上運行一些簡單的查詢,試一試 XQuery Builder。隨 DB2 9 一起發布的 SAMPLE 數據庫中有一些具有 XML 字段的表,這些表都填充了示例數據。例如 CUSTOMER 表,這個表有 XML 類型的 INFO 和 HISTORY 字段。還可以用命令 db2sampl -xml 創建自己的示例數據庫。

要試一下 XQuery Builder,可以打開 DB2 Workbench,并開始一個新項目:選擇 File → New → Data Development Project,或者單擊 New Project 圖標,然后選擇 Data Development Project。

接著,將該項目命名為 XQueryProject,并保留其他默認設置。如果已經連接到 SAMPLE 數據庫,那么在 Use an Existing Connection 下選擇它。如果還沒有連接到 SAMPLE 數據庫,那么采取以下步驟:

選擇 Create a New Connection。 在 Connection Parameters 下, 選擇 DB2 UDB v9.1。 指定 SAMPLE 作為數據庫名,保留其他默認設置。 輸入登錄名和密碼(如果不特別指定的話,就是系統登錄名/密碼),然后單擊 Test Connection。 如果一切正常,則單擊 Next 繼續。

在 New Project 向導的最后一部分,保留 Routine Parameters 的默認設置,并單擊 Finish。

Workbench 創建好新項目之后,應該可以在左上區的 Data Project Explorer 中看到這個項目。在 Database Explorer 中,在新建的項目下面可以看到 SAMPLE 數據庫。如果還沒有連接到該數據庫,那么單擊右鍵,選擇 Connect 或 Reconnect,并輸入憑證。

展開這兩個窗口中的條目。注意,在 Data Project Explorer 中的新項目下,有下面一些空的文件夾:

XML Queries SQL Scripts Stored Procedures XML Schema Documents User-Defined Functions。

Developer Workbench 的部分威力依賴于它所提供的一組向導,其中大多數向導可以在這些文件夾上通過上下文菜單打開。在這里可以添加 XSD 文件到項目中,以便于 XML 操縱。還可以構建新的存儲過程、腳本,甚至包括自己的函數。但是在這里我們將把注意力放在第一個文件夾上:XML Queries。

創建一個 XML 查詢

您可以通過打開 New XML Query 向導來創建第一個 XML 查詢。首先,在 Data Project Explorer 面板中的 XML Queries 文件夾上單擊右鍵,然后選擇 New XML Query。 將這個 XML 查詢命名為 SimpleXQuery。

當看到 Add representative XML documents 選項時,單擊 Add。這里有兩個選項,一是讓 Workbench 根據示例數據發現并創建一個 XML 模式,另外一種選項是使用一個已有的模式:

Local workspace:如果已經為要使用的數據集生成了一個模式,或者已經將一個已有的 XSD 或 DTD 文檔保存到工作區,那么選擇該選項并找到該模式。 Database: 如果要根據已有的 XML 數據創建一個新模式,那么選擇 Database 選項。

對于這個例子,選擇 Database。 對于 XML 列或模式,導航到 CUSTOMER.INFO(如果不確定如何找到它,可以在線參考圖 A)。

在該向導接下來的屏幕中,可以將文檔與特定的 XML 文檔關聯起來,您將在該 XML 文檔上構建查詢。在 SAMPLE 數據庫中,每一行可以包含一個具有不同模式的 XML 文檔。在這里,可以在行之間導航,以選擇要使用的模式。對于這個例子,選擇 Document 2 (見圖 1)。

圖 1. XML 文檔行

理解DB2 9中新的查詢:XQuery

在該向導的最后一個屏幕中,該向導要求您將文檔與 XML 列相關聯。如果您一直使用一個已有的 XML 模式,那么需要在這里關聯它。但是這個例子是基于已有數據的模式的,因此默認情況下模式文檔已經是關聯的。

現在您已經創建了一個新的 XQuery View,并將其命名為 SimpleXQuery.xqm。我們花一點時間來探索一下這個視圖。您將看到,示例數據使用指定列的第一行的 XML 模式列出。您還將看到大量的語法,這些語法可以直接被拖放到設計工作區,包括 Constructors、Expressions、Functions 和 Variables,它們都是基于目前萬維網聯盟(W3C)正在評審的 XQuery 規范的。

構建一個可視化 XQuery

有了新的 XQuery 網格,您將創建一個簡單的包含一些條件的查詢。

展開 Constructors 類別,將一個新的 Element 拖放到網格上。對于拖放到網格上的每個項目,都可以在它右邊看到一個 Step Into 圖標。單擊 new_element 的這個圖標。

將該元素的 Name 改為 toronto(見圖 2)。不用關心 Attributes。 拖放 Element Value 下的 name 節點。注意,name 節點現在也有一個 Step Into 圖標。單擊該圖標。

圖 2. XML 元素

在 Visual Builder 中,每當單擊 Step Into,就會打開相應項目所特有的一個子頁面。對于 XML 節點,它打開 For、Let、Where、Order by、Return diagram 或 FLWOR。這個圖基本上相當于 SQL 中的 SELECT-FROM-WHERE 子句,它允許您定義查詢的選擇標準。

Workbench 自動為 FLWOR 語句所需的綁定變量賦值,不過可以改變它的值。在這個例子中,它被命名為 name0。默認情況下,這個例子中的 Sequence 和 Return 值都是 name 節點。您只需定義條件。為此,展開左側的 Functions 類別,從下拉菜單中選擇 String Functions,如果該項還沒有被選中的話。您有很多內建的函數可以選擇,因此在 WHERE 子句時有很多選擇余地。這個例子的目標是選擇來自 Toronto 的所有客戶。最直接的方法是將 city 節點拖放到 Operand 1 下,選擇 = 作為 Operator,鍵入 Toronto 作為 Operand 2。還可以使用 match() 函數來定義一個模式,或者混合任意數量的字符串函數來創建更明確的標準。為簡單起見,拖出 contains() 函數并將它放在 Operand 1 下(見圖 3)。

圖 3. 包含 contains() 函數的 FLWOR

由于 contains() 函數返回 True 或 False,因此不需要再指定一個操作數。單擊該函數對應的 Step Into,定義該函數的參數。contains() 函數帶兩個參數:string 和 substring。將 city 節點拖到 string 參數上。在 substring 旁邊輸入 onto。這將選出包含字母 onto(全部為小寫)的所有城市。這個步驟類似于 SQL 中的 LIKE '%onto%'。

圖 4. 定義 contains() 函數

在該窗口的右上角,可以看到一個 Step Out 圖標。單擊該圖標,或者從下拉菜單中選擇 OK,進入到上一級。在 For Logic 定義中,增加一個字段。將 phone 元素拖放到 Return 網格上的 name 下。然后再次單擊 Step Out。

再次單擊 Step Out,返回到 root 級節點。在這里可以繼續添加節點。現在,運行一下查詢,看看結果。在右上角的圖標上單擊右鍵,從下拉菜單中選擇 Run...,或者從主菜單中選擇 Run → Run...。

這里還有一次機會將 XML 列與一個定義文檔相關聯,但是由于它已經被正確地關聯了,因此只需單擊 Finish。在 Data Output 視圖中,應該可以看到 ...。 單擊省略號查看整個結果集。

您可以查看兩種格式的結果:XML Tree (見圖 5) 或 Source,后者是一種無格式文本轉儲。在這個簡單的例子中,所有結果都被收集在一個根節點下,包括任何重復的客戶。但是,通過較小的調整,就可以改變節點層次,增加附加字段,刪除重復的行,或者增加聚合函數。

圖 5. 示例 XQuery 的結果

還可以對一個外部文件執行 Save As... 命令。實際上,如果單擊 Save As 并保存到 demo.xml,可以在 Web 瀏覽器中打開這個文件,并看到包含查詢結果的一個基本的(但是不完全是格式良好的)XML 文檔。

最后一個特性

現在輪到了我認為是 Visual Builder 最好的一個特性。回到網格上,選擇左上角的 Source 標簽頁。您將看到自動生成的描述查詢的 XQuery 代碼。該代碼的主體可以直接在數據庫查詢或存儲過程中使用,這對于動態構建 XML 查詢是一種快速有效的方法。我們的例子生成了如清單 1 所示的源代碼。

邊練邊學

這個例子只是開始探索 Visual XQuery Builder 的潛能。除了幫助您創建復雜的嵌入式 XML 查詢外,它還可以生成源代碼,通過查看源代碼,或者在其他地方使用該源代碼,有助于學習 XQuery 的語法。

標簽: DB2 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲成人日韩| 国产福利一区二区三区在线播放| 国产精品qvod| 日本亚洲视频在线| 久久精品超碰| 精品亚洲自拍| 欧美aa在线观看| 女人av一区| 日韩制服丝袜先锋影音| 日本成人在线网站| 国产精品99久久免费| 精品国产a一区二区三区v免费| 国产不卡精品在线| 欧美日韩国产免费观看视频| 模特精品在线| 国产日产精品_国产精品毛片| 国产精久久一区二区| 五月天av在线| 婷婷综合网站| 日本亚洲视频| 国产精品久久久久蜜臀| 米奇777超碰欧美日韩亚洲| 亚洲午夜国产成人| 国产精品免费精品自在线观看| 日韩电影在线视频| 亚洲精品少妇| 在线手机中文字幕| 老牛影视一区二区三区| 欧美日韩1区2区3区| 精品日韩一区| 欧美日韩精品免费观看视频完整| 日韩中出av| 欧美黄色网页| 中文字幕一区日韩精品| 国产精品成人一区二区网站软件| 久久婷婷丁香| 欧美久久精品| 亚洲大片在线| 久久爱www成人| 午夜欧美精品久久久久久久| 国产精品宾馆| 日韩制服丝袜av| 特黄毛片在线观看| 日韩成人av影视| 国内亚洲精品| 狂野欧美性猛交xxxx| 日韩在线播放一区二区| 日韩精品专区| 日本少妇精品亚洲第一区| 成人日韩在线| 久久不见久久见免费视频7| 美女被久久久| 激情欧美日韩一区| 国产精品福利在线观看播放| 日本亚洲欧美天堂免费| 99精品视频在线观看免费播放| 欧美日韩一区二区国产| 亚洲中字黄色| 视频福利一区| 久久精品一区二区国产| 只有精品亚洲| 五月婷婷六月综合| 九九99久久精品在免费线bt| 在线观看一区| 亚洲激情另类| 久久五月天小说| 精品一区二区男人吃奶| 亚洲精品人人| 国产精品色网| 999国产精品视频| 首页国产精品| 国产一区二区三区四区二区| 日韩不卡手机在线v区| 在线午夜精品| 激情婷婷综合| 人人精品亚洲| 91精品xxx在线观看| 精品久久久久久久| 久久精品av麻豆的观看方式| 亚洲一区二区免费在线观看| 国产二区精品| 亚洲午夜电影| 亚洲福利国产| 成人日韩在线| 日韩欧美精品一区| 国产一区二区三区国产精品| 欧美激情久久久久久久久久久| 奇米亚洲欧美| 青青国产91久久久久久| 婷婷亚洲精品| 日韩精彩视频在线观看| 亚洲ww精品| 日韩精品一区二区三区中文在线| 9国产精品视频| 国产农村妇女精品一区二区| 亚洲专区在线| 亚洲区国产区| 91国内精品| 国产精品久久久久久久久久齐齐| 国产欧美日韩精品高清二区综合区| 国产日韩中文在线中文字幕| 久久精品99国产精品日本| 88久久精品| 久久av中文| 樱桃视频成人在线观看| 久久精品亚洲人成影院 | 国产精品对白久久久久粗| 国产伦精品一区二区三区在线播放 | 精品一区二区三区中文字幕视频| 国产精品成人3p一区二区三区| 久久的色偷偷| 日韩国产一区二区| 欧美福利在线| 日韩欧美中文在线观看| 国产日韩一区二区三免费高清 | 高清av一区| 91精品久久久久久久久久不卡| 欧美搞黄网站| 日韩在线观看一区二区三区| 国产伦精品一区二区三区千人斩| 欧美aa在线视频| 亚洲www啪成人一区二区| 红桃视频亚洲| 日本综合精品一区| 老牛国内精品亚洲成av人片| 日韩理论视频| 欧美精品黄色| 日韩国产欧美三级| 国产不卡av一区二区| 亚洲大全视频| 国产亚洲精品精品国产亚洲综合 | 婷婷综合福利| 精品中文字幕一区二区三区四区| 久久久久久免费视频| 亚洲精品日本| 高清av一区| 免费在线观看视频一区| 国产精品极品在线观看| 99精品在线观看| 一区二区三区四区日韩| 欧美激情福利| 亚洲成人一区| 久久字幕精品一区| 香蕉久久久久久久av网站| 欧美日韩亚洲一区二区三区在线| 亚洲啊v在线| 日韩精品成人| 亚洲国产影院| 国产高清日韩| 日韩专区欧美专区| 日韩美女一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 美女国产一区| 成人一区而且| 日韩二区三区在线观看| 99久久www免费| 国产精品xvideos88| 国产亚洲欧洲| 樱桃视频成人在线观看| 91免费精品国偷自产在线在线| 亚洲91久久| 国产精品久久乐| 日韩精品一二区| 日韩不卡免费高清视频| 欧美亚洲专区| 热久久免费视频| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 久久精品观看| 精品视频一区二区三区在线观看 | 国产福利电影在线播放| 日本欧美一区二区在线观看| 婷婷色综合网| 波多野结衣久久精品| 国产精品亚洲人成在99www| 国产精品嫩草99av在线| 精品国产午夜肉伦伦影院 | 国产精品免费看| 亚洲成人二区| 91青青国产在线观看精品| 国产精品毛片aⅴ一区二区三区| 蜜桃视频免费观看一区| 91精品国产91久久久久久黑人| 精品欧美日韩精品| 国产日产精品_国产精品毛片| 自拍自偷一区二区三区| 欧美日韩国产一区精品一区| 亚洲成人一区在线观看| 国产精品s色| 欧美日韩xxxx| 日本不卡高清| 亚洲最新av| 六月丁香综合| 亚洲欧美网站| 在线观看免费一区二区| 神马久久午夜| 亚洲日本网址| 日韩中文首页| 日韩中文在线电影| 久久久成人网| 极品日韩av|