佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > DB2 9(Viper)快速入門(mén)

DB2 9(Viper)快速入門(mén)

熱門(mén)標(biāo)簽:網(wǎng)站排名優(yōu)化 Linux服務(wù)器 呼叫中心市場(chǎng)需求 AI電銷(xiāo) 鐵路電話系統(tǒng) 地方門(mén)戶網(wǎng)站 百度競(jìng)價(jià)排名 服務(wù)外包
正在看的db2教程是:DB2 9(Viper)快速入門(mén)。

為了幫助您快速掌握 DB2 自身的 XML 特性,請(qǐng)完成幾個(gè)普通的任務(wù),比如:

  1. 創(chuàng)建用于管理 XML 數(shù)據(jù)的數(shù)據(jù)庫(kù)對(duì)象,包括一個(gè)測(cè)試數(shù)據(jù)庫(kù)、一些示例表和視圖。
  2. 使用 INSERT 和 IMPORT 語(yǔ)句將 XML 數(shù)據(jù)填充到數(shù)據(jù)庫(kù)中。
  3. 驗(yàn)證您的 XML 數(shù)據(jù)。使用 DB2 開(kāi)發(fā)和注冊(cè)您的 XML 模式,并在導(dǎo)入數(shù)據(jù)時(shí)使用 XMLVALIDATE 選項(xiàng)。
后續(xù)文章將包括其他主題,比如使用 SQL 查詢、更新和刪除 DB2 XML 數(shù)據(jù),使用 XQuery 查詢 DB2 XML 數(shù)據(jù),開(kāi)發(fā)存取 DB2 XML 數(shù)據(jù)的 Java 應(yīng)用程序和 Web 組件。
創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象

讓我們先來(lái)創(chuàng)建一個(gè)單獨(dú)的 DB2 Unicode 數(shù)據(jù)庫(kù)。在 DB2 Viper 中,只有 Unicode 數(shù)據(jù)庫(kù)才能同時(shí)存儲(chǔ) XML 文檔和 SQL 數(shù)據(jù)的更多傳統(tǒng)格式,比如整數(shù)、日期/時(shí)間、變長(zhǎng)字符串,等等。隨后,您將在這個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象來(lái)管理 XML 和其他類(lèi)型的數(shù)據(jù)。

創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)

為了創(chuàng)建一個(gè)新的 DB2 Unicode “測(cè)試” 數(shù)據(jù)庫(kù),打開(kāi) DB2 命令窗口,發(fā)出語(yǔ)句來(lái)指定 Unicode 編碼集合和支持的區(qū)域,如 清單 1:

清單 1. 創(chuàng)建用于存儲(chǔ) XML 數(shù)據(jù)的數(shù)據(jù)庫(kù)



create database test using codeset UTF-8 territory us



一旦創(chuàng)建了 Unicode 數(shù)據(jù)庫(kù),您就不需要發(fā)出任何專(zhuān)門(mén)的命令或采取任何進(jìn)一步措施來(lái)使 DB2 能夠以它自身分層的格式存儲(chǔ) XML 數(shù)據(jù),因?yàn)槟?DB2 系統(tǒng)已經(jīng)準(zhǔn)備好了。

創(chuàng)建示例表

為了存儲(chǔ) XML 數(shù)據(jù),請(qǐng)創(chuàng)建包含一個(gè)或多個(gè) XML 列的表。這些表充當(dāng)文檔集合的邏輯容器;在幕后,DB2 實(shí)際上使用了不同的存儲(chǔ)方案來(lái)存儲(chǔ) XML 和非 XML 數(shù)據(jù)。然而,使用表作為管理各種受支持的數(shù)據(jù)格式的邏輯對(duì)象,簡(jiǎn)化了管理和應(yīng)用程序開(kāi)發(fā)問(wèn)題,特別是當(dāng)需要在一個(gè)單獨(dú)的查詢中集成不同的數(shù)據(jù)格式時(shí)。

您可以對(duì) DB2 表進(jìn)行定義,使其只包含 XML 列、只包含傳統(tǒng) SQL 類(lèi)型的列或者同時(shí)包含兩者。本文對(duì)后一種情況進(jìn)行了建模。清單 2 中的例子連接到 “測(cè)試” 數(shù)據(jù)庫(kù),并創(chuàng)建了兩個(gè)表。第一個(gè)是 “items” 表,追蹤關(guān)于貨物的銷(xiāo)售情況和顧客對(duì)貨物的評(píng)價(jià)信息。第二個(gè)表追蹤的是關(guān)于 “客戶” 的信息,包括關(guān)于聯(lián)系信息的數(shù)據(jù)。注意 “comments” 和 “contactinfo” 是基于新的 DB2 XML 數(shù)據(jù)類(lèi)型,而所有其他的列都是基于傳統(tǒng) SQL 數(shù)據(jù)類(lèi)型的。

清單 2. 創(chuàng)建用于 XML 數(shù)據(jù)的表



connect to test;

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

);



如果您仔細(xì)地查看這些表定義例子,您將注意到 “comments” 和 “contactinfo” 列都沒(méi)有進(jìn)行 XML 文檔內(nèi)部結(jié)構(gòu)的定義。這是 DB2 的一個(gè)重要特性。用戶不需要為了存儲(chǔ)數(shù)據(jù)而預(yù)定義一個(gè) XML 數(shù)據(jù)結(jié)構(gòu)(或者,更準(zhǔn)確地說(shuō)是一個(gè) XML 模式)。事實(shí)上,DB2 可以在一個(gè)單獨(dú)的列中存儲(chǔ)任何格式良好的 XML 文檔,這意味著不同模式的 XML 文檔 —— 或沒(méi)有和任何注冊(cè)的模式關(guān)聯(lián)的文檔 —— 都可以存儲(chǔ)在相同的 DB2 列中。當(dāng)我們討論如何在 DB2 中存儲(chǔ)數(shù)據(jù)時(shí),本文將深入討論這個(gè)特性。

創(chuàng)建視圖

您可以隨意地在包含 XML 數(shù)據(jù)的表上創(chuàng)建視圖,就像您可以在只包含傳統(tǒng) SQL 數(shù)據(jù)類(lèi)型的表上創(chuàng)建視圖一樣。清單 3 中的例子創(chuàng)建具有 “Gold” 狀態(tài)的客戶的一個(gè)視圖:

清單 3. 創(chuàng)建一個(gè)包含 XML 數(shù)據(jù)的視圖



create view goldview as

select id, name, contactinfo

from clients where status='Gold';



關(guān)于索引的一點(diǎn)說(shuō)明

最后,沒(méi)有必要在 XML 列上創(chuàng)建專(zhuān)門(mén)的索引來(lái)提高數(shù)據(jù)的查詢速度。因?yàn)檫@是一篇介紹性文章,而且示例數(shù)據(jù)很少,所以本文不會(huì)涵蓋到那個(gè)主題。然而,在生產(chǎn)環(huán)境中,定義一個(gè)適當(dāng)?shù)乃饕龑?duì)實(shí)現(xiàn)最佳的性能來(lái)說(shuō)很關(guān)鍵。查看本文結(jié)尾部分的 “參考資料”,以助于了解 DB2 的新索引技術(shù)。

存儲(chǔ) XML 數(shù)據(jù)

創(chuàng)建好表之后,現(xiàn)在您就可以用數(shù)據(jù)填充它們了。您可以通過(guò)直接發(fā)出 SQL INSERT 語(yǔ)句來(lái)完成這項(xiàng)工作,或者通過(guò)調(diào)用 DB2 IMPORT 工具在后臺(tái)發(fā)出 INSERT 語(yǔ)句。

使用 INSERT 語(yǔ)句

使用 INSERT,您可以直接向 DB2 中填充原始的 XML 數(shù)據(jù)。如果您已經(jīng)編寫(xiě)了一個(gè)應(yīng)用程序并在變量中存儲(chǔ)了 XML 數(shù)據(jù),那么這可能是最容易的方法。但是如果您只是剛開(kāi)始使用 DB2 Viper,并且不想編寫(xiě)應(yīng)用程序,那么您可以交互地發(fā)出 INSERT 語(yǔ)句(我發(fā)現(xiàn)使用 DB2 Command Editor 是很方便的,雖然您也可以使用命令行處理器,如果您更喜歡那么做的話)。

要使用 DB2 Command Editor,請(qǐng)啟動(dòng) DB2 Control Center。從頂端的下拉菜單 “Tools” 中選擇 Command Editor,將出現(xiàn)一個(gè)單獨(dú)的窗口,如 圖 1 所示。

圖 1. DB2 Command Editor



在上面的窗格中輸入下列語(yǔ)句:

清單 4. 交互地插入 XML 數(shù)據(jù)



connect to test;

insert into clients values (77, 'John Smith', 'Gold',

xmlparse(document 'addr>111 Main St., Dallas, TX, 00112/addr>'

preserve whitespace)

)



單擊左側(cè)的綠色箭頭來(lái)執(zhí)行該命令。

注意,聯(lián)機(jī)提供 XML 數(shù)據(jù)(如 清單 4 所示)需要您調(diào)用 XMLPARSE 函數(shù),以把文檔從字符值轉(zhuǎn)換成 XML 類(lèi)型值。本例中的輸入文檔相當(dāng)簡(jiǎn)單 。如果文檔很大或者很復(fù)雜,把 XML 數(shù)據(jù)鍵入到像清單 4 所示的 INSERT 語(yǔ)句中是不切實(shí)際的。在大多數(shù)情況下,您使用主機(jī)變量或者參數(shù)標(biāo)記編寫(xiě)一個(gè)應(yīng)用程序來(lái)插入數(shù)據(jù)。您將發(fā)現(xiàn)本文帶有一個(gè)簡(jiǎn)要的 Java 代碼編寫(xiě)例子。然而,由于這是一個(gè)介紹性的教程,所以我們不會(huì)詳細(xì)地討論應(yīng)用程序開(kāi)發(fā)主題。相反,我們將討論使用數(shù)據(jù)填充 DB2 XML 列的另一種選擇 —— 使用 IMPORT 工具。

使用 DB2 IMPORT

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

您可能感興趣的文章:
  • golang 使用 viper 讀取自定義配置文件
  • viper配置框架的介紹支持zookeeper的讀取和監(jiān)聽(tīng)

標(biāo)簽:湘潭 湖南 銅川 崇左 黃山 仙桃 衡水 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《DB2 9(Viper)快速入門(mén)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    会东县| 巨野县| 富阳市| 乐山市| 黄梅县| 宿松县| 繁昌县| 青龙| 自贡市| 金川县| 诸暨市| 白沙| 崇阳县| 寿宁县| 浦东新区| 奉节县| 集贤县| 东海县| 布尔津县| 丰台区| 宾川县| 沙湾县| 曲周县| 辽阳县| 大安市| 中牟县| 福州市| 福建省| 贺州市| 台山市| 靖远县| 孝义市| 曲阳县| 延川县| 江川县| 湖北省| 大同县| 商丘市| 鲁甸县| 城步| 花莲县|