国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

理解DB2 9中新的查詢:XQuery

瀏覽:5日期: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 數據庫
主站蜘蛛池模板: 亚洲免费网站在线观看 | 精品国产区一区二区三区在线观看 | 草草视频在线观看最新 | 一级成人黄色片 | 久久午夜精品 | 成人怡红院| 欧美一级毛片高清免费观看 | 模特精品一区二区三区 | 99国产精品免费观看视频 | 一级做a免费视频观看网站 一级做a爰 | 久久久久国产视频 | 免费一级大片 | 国产亚洲片 | xxxwww欧美性| 免费一级在线 | 国产综合久久一区二区三区 | 亚洲欧美7777 | 久久99久久精品视频 | 日本特级视频 | 97欧美精品一区二区三区 | 一级毛片欧美大片 | 亚洲国产天堂久久综合网站 | 免费人成网站在线播放 | 九九精品免视看国产成人 | 高清免费国产在线观看 | 日韩成人午夜 | 精品在线一区 | 午夜精品在线 | 伊人成人在线 | 日本天堂在线视频 | 性强烈欧美一级毛片 | 在线播放国产真实女同事 | 99视频在线观看高清 | 久久国产99| 越南高清幻女bbwxxxx | 国产成人午夜精品5599 | 人成精品 | av亚洲男人天堂 | 亚洲人成在线播放网站岛国 | 国产成人在线影院 | 成人毛片免费观看视频在线 |