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

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

理解DB2 9中新的查詢:XQuery

瀏覽:31日期: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久久,三上悠亚国产精品一区二区三区
国产视频一区欧美| 激情综合在线| 激情丁香综合| 亚洲午夜91| 国产91精品对白在线播放| 超级白嫩亚洲国产第一| 久久av免费| 日本在线观看不卡视频| 亚洲精一区二区三区| 亚洲一区二区三区在线免费| 丝袜亚洲另类欧美| 色爱av综合网| 尹人成人综合网| 日韩中文字幕91| 亚洲精品在线二区| 欧美一级网站| 国产成人精品一区二区免费看京| 国产一区二区三区不卡视频网站| 91精品韩国| 国产精品美女久久久| 色狠狠一区二区三区| 国产高清亚洲| www.九色在线| 99国产精品私拍| 日韩国产欧美一区二区三区| 国产精品国码视频| 国产剧情在线观看一区| 精品国产网站| 亚洲高清不卡| 亚洲+小说+欧美+激情+另类| 国产精品视频一区二区三区四蜜臂| 成人国产综合| 在线一区欧美| 国产日韩欧美在线播放不卡| 日韩久久一区二区三区| 亚洲日本免费电影| 精品国产a一区二区三区v免费| 日韩欧美网址| 视频一区欧美精品| 91av一区| 色88888久久久久久影院| 国产99亚洲| 视频一区欧美日韩| 日本aⅴ精品一区二区三区| 亚洲ww精品| 国产精品一区二区免费福利视频| 国产欧美高清视频在线| 国产一区一一区高清不卡| 婷婷亚洲成人| 黄毛片在线观看| 99热精品在线观看| 日韩极品在线观看| 成人免费一区| 亚洲激情社区| 欧美精品影院| 久久精品中文| 中文欧美日韩| 国产日韩免费| 99成人在线视频| 日韩三级久久| 视频在线不卡免费观看| 亚洲91久久| 日韩精品高清不卡| 国产精品xvideos88| 国产精品字幕| 亚州精品视频| 日本久久精品| 精品1区2区3区4区| 精品九九久久| 亚洲一区欧美| 97精品在线| 美女网站久久| 美女视频黄久久| 亚洲精品一二三区区别| 国产精品欧美三级在线观看 | 天堂成人国产精品一区| 国产欧美一区二区三区国产幕精品| 福利视频一区| 91p九色成人| 羞羞答答国产精品www一本| 日本欧美国产| 天堂va蜜桃一区二区三区| 日本少妇一区二区| 国产日产一区| 日韩av免费大片| 激情欧美日韩一区| 国产欧美高清视频在线| 免费视频久久| 99久久久久久中文字幕一区| 欧美性www| 亚洲视频二区| 国产91一区| 老司机精品视频网| 亚洲tv在线| 欧美va亚洲va日韩∨a综合色| 国产日产精品_国产精品毛片| 免费av一区| 日本成人在线一区| 狠狠久久婷婷| 国产一区二区三区亚洲综合| 日韩一级精品| 综合日韩在线| 欧美sm一区| yellow在线观看网址| 欧美国产视频| 国产日韩欧美中文在线| 亚洲三级国产| 久久不射网站| 99成人在线视频| 精品国产a一区二区三区v免费| 97久久亚洲| 中文字幕日韩亚洲| 国产亚洲综合精品| 欧美午夜不卡影院在线观看完整版免费| 欧美一区精品| 亚洲一级大片| 亚洲另类视频| 88xx成人免费观看视频库| 国产亚洲一区二区三区不卡| 国产精品嫩草99av在线| 色网在线免费观看| 精品中文字幕一区二区三区| 日韩精品成人| 久久精品 人人爱| 欧美日韩1区2区3区| 久久福利毛片| 九九色在线视频| 日韩精品91| 久久精品av| 国产亚洲一区二区手机在线观看| 都市激情国产精品| 热三久草你在线| 色在线中文字幕| 亚洲人成在线网站| 99久精品视频在线观看视频| 亚洲综合在线电影| 色综合www| 欧美在线观看视频一区| 欧美特黄一级大片| 亚洲涩涩在线| 亚洲欧美日韩国产综合精品二区 | 国产欧美日韩精品高清二区综合区 | 国产精品theporn| 日韩国产欧美三级| 国产精品毛片视频| 成人午夜毛片| 国产精品对白久久久久粗| 亚洲人成毛片在线播放女女| 亚洲欧美日韩国产一区| 欧美粗暴jizz性欧美20| 欧美日韩国产综合网| 欧美91福利在线观看| 在线日韩视频| 在线亚洲观看| 亚欧成人精品| 麻豆精品久久| 激情久久五月| 亚洲一区二区成人| 一区二区亚洲视频| 久久精品 人人爱| 日本黄色精品| 在线一区视频| 国产高清精品二区| 五月激情久久| 亚洲福利一区| 久久婷婷亚洲| 亚洲精品系列| 福利视频一区| 玖玖精品视频| 国内揄拍国内精品久久| 欧美va天堂在线| 日本色综合中文字幕| 麻豆成人综合网| 91综合视频| 亚洲欧美日本国产| 久久久久久婷| 日韩精品一二区| 精品视频自拍| 欧美日韩国产亚洲一区| 精品三级久久| 免费在线观看视频一区| 国产精品啊啊啊| 好吊日精品视频| 国产精品白丝av嫩草影院| 不卡在线一区| 国产精品一页| 影院欧美亚洲| 国产成人黄色| 亚洲精品88| 一二三区精品| 狠狠躁少妇一区二区三区| 午夜一区在线| 国产精品久久观看| 亚洲伊人精品酒店| 精品国产一级| 中文欧美日韩| 欧美日韩调教| 欧美高清一区| 国产精品v亚洲精品v日韩精品| 欧洲激情综合|