DB2數據庫對象基礎知識_第1頁
DB2數據庫對象基礎知識_第2頁
免費預覽已結束,剩余6頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 / 42DB2 數據庫對象差不多數據庫對象數據庫對象是一個數據庫的構造塊( building block )。 DB2 提 供了不同類型的數據庫對象來存儲和表示不同信息。 通過使用數 據定義語言(DDL,能夠創建、修改和刪除數據庫對象。要操縱 數據庫對象,能夠使用數據操縱語言(DML,例如 SELECTUPDAT、E INSERT 和 SELECT 語句。常用的數據庫對象有:表用戶定義數據類型約束視圖索引除了 Family Fundamentals 教程里介紹的一些數據庫對象外, 還有一些其他的對象,專門多開發人員在開發 DB2 應用程序時 會發覺這些對象比較有用。本節我們將介紹這些對象。

2、2 / 42在接著之前,有一點要注意:在下面看到的一些例子中,對象名 稱是以小寫形式指定的。不管 DB2 在哪個平臺上運行,它總是 以大寫形式存儲名稱,除非標識符的名稱以雙引號( )括起來 了。例如,下面的語句創建一個名為 employee (小寫)的表,該表 的列定義與表 EMPLOYE(E 大寫)是一樣的。CREATE TABLE employee LIKE employee不名不名( alias ) 是指一個已有的表、視圖的另一個名稱,也叫昵 稱(nickname )。不名也能夠作為另一個不名的昵稱。與這些對 象一樣,不名也能夠被創建或刪除,能夠有與之相關的注釋。下 面是 CREATE

3、ALIAS語句的一些例子:CREATE ALIAS aliastab1 FOR tab1;CREATE ALIAS bob.aliastab1 FOR tom.tab1;CREATE SYNONYM bob.aliastab2 FOR bob.aliastab1;能夠看到,CREATE ALIAS 語句比較簡單。能夠在源對象所在的 同一模式中創建不名(如第 1 行),或者也能夠全限定不名(如 第 2 行)。為了與 DB2 for zSeries 兼容, 使用關鍵字 SYNONYM 代替 ALIAS 也是合法的(如第 3 行)。使用不名時無需專門的授權或權限。 只是, 需要獲得與不名所引 用的底

4、層對象相關的授權。 關于數據庫對象權限的完整清單, 請 參考 DB2DBA 認證教程 Server management (請參閱 參考資 料)。前面已提到, 我們也能夠為 昵稱 創建不名。 昵稱是引用位于聯 邦系統上的數據表或視圖的數據庫對象。 聯邦數據庫支持超出了 本 教 程 的范 圍 。 在 本 教 程 系 列 的 第 2 部 分 , Data3 / 424 / 42manipulation ,我們將學習更多有關聯邦系統的知識。要為不名添加注釋,能夠發出以下語句:COMMENT ON aliastab1 IS My first alias on tab1要刪除一個不名, 使用 DROP

5、語句, 這與所有其他數據庫對象是一樣的:DROP ALIAS aliastab1序列對象序列(sequenee)是一種數據庫對象,這種對象同意自動生成值。序列對象與標識列( identity column )不同,標識列是要與一個特定的表綁在一起的,而序列是一種全局的、獨立的對象,同一個數據庫中的任何表都能夠使用它5 / 42標識列是序列對象的一種特例。 因此, 標識列的特征也適用于序列對象。下面就例釋了一條 CREATE SEQUENCE句:CREATE SEQUENCE myseq AS INTEGERSTART WITH 360INCREMENT BY 10NO MAXVALUECYCL

6、ECACHE 20任何包括 0 在內的數字數據類型都可用于序列值。這些類型包括 SMALLINT INTEGER BIGINT 或 DECIMAL 基于這些數據類 型的任何用戶定義獨特類型( distinct type )也都能夠用于序 列值。這進一步擴展了用戶定義獨特類型在應用程序中的使用。如上面的例子所示, 您能夠為序列對象指定起始值, 從而自定義 序列對象。在那個例子中,序列的第一個值是 360 。后續值的生 成是由INCREMENTBY 子句操縱的。 那個地點還支持正、 負常量, 以產生升序和降序值。6 / 42缺省情況下, 一個序列所生成的最小值和最大值是由該序列數據類型的取值范圍來

7、界定的。 例如,INTEGER 類型的序列值必須處 在-2,147,483,647 到 2,147,483,647 之間的范圍內。 在 DB2 SQL ReferenceGuide 中能夠找到所有數字數據類型的取值范 圍。為了改變這種缺省行為,能夠使用MINVALUE 和 MAXVALUE選項來為生成的值設置一個邊界。假如達到了最小值或最大值, 那么能夠使用另一個選項,即 CYCLE 或 NO CYCLE 來規定序列 值是否應該循環。注意,假如 CYCLE 生效,則序列就能夠生成 重復的值。CACHE 選項同意 DB2 將一些預先分配好空間的值保留在內存 中,以提高性能。 CACHE 20 是

8、缺省的行為。關于那個選項有一 點要謹記:假如在所有緩存的值被使用之前關閉DB2,那么任何緩存的值和未使用的值都將被丟棄。當 DB2 重新啟動時,又會生成和緩存下一塊的值, 從而造成值之間的不連續, 即值之間存 在間隔。假如應用程序不同意值之間有間隔,能夠考慮使用NOCAC H 選項。假如沒有使用緩存, 則性能就會下降, 因為要頻繁地生成序列數 字。7 / 42每當生成一個新值的時候,都會寫下一條日志記錄。因此, 更高效的做法是依照請求來獵取值,并將這些值緩存在內存中。通過 ALTERSEQUENC 語句,能夠更改序列對象的特征。除了序 列值的數據類型以外, 上面所討論的所有的設置都能夠修改。

9、要 獲得完整的語法, 請參考 DB2 SQLReference Guide (請參閱 參 考資料)。刪除一個序列對象與刪除任何其他的數據庫對象是一樣的, 不同 之處是那個地點還要使用到一個 RESTRICT 關鍵字。如此能夠防 止在有依靠的情況下刪除序列。DROP SEQUENCE myseq RESTRICT生成和獵取序列值序列是一種數據庫對象,因此對序列的訪問也是由權限來操縱的。缺省情況下,只有序列的創建者,即SY SADM 和 DBADM 擁有該對象的 USAGE 權限。假如希望其他用戶也能夠使用序列, 則需要使用下面的語句:GRANT USAGE ON SEQUENCE seq_object_name TO PUBLIC有兩種表達式可用于生成和獵取序列值。 NEXTVALFORseq-name 用于獵取下一個序列值,而 PREVVA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論