DB2 初步學習之系統表

2021-06-20 02:47:25 字數 2490 閱讀 3473

db2 系統表的功能

在 db2 資料庫被建立的時候,db2 會建立一些系統表。這些系統表中記錄了所有資料庫物件的資訊,表或檢視的列的資料型別,約束的定義,物件的許可權和物件之間的依賴關係等。這些系統表的模式為 sysibm,其表名以 sys 作為字首。例如: systables、sysviews 等等。db2 為這些系統表建立了相對應的唯讀檢視。這些檢視的模式是 syscat,它們的內容是其相對應的系統表的全部或者部分內容。這些檢視的名字沒有 sys 的字首。例如:syscat.tables 是 sysibm.systables 的檢視。我們可以通過list tables for systemlist tables for schema schemaname命令檢視所有的系統表和相關的檢視資訊。

其所有的系統表目錄可以在以下**檢視:

syscat.tables:資料庫中物件的資訊,包括 table,view,nickname 和 alias 的一些定義。詳細說明見表 1。

表 1. syscat.tables 檢視的說明

列名資料型別

描述tabschema

varchar(128)

記錄 schema 的名字

tabname

varchar(128)

記錄資料庫物件的名稱。包括表、檢視、別名等

type

char(1)

表示該資料庫物件是表,檢視還是別名 ('t'表示table; 'v'表示 view; 'n' 表示nickname; 'a' 表示 alias。)

colcount

smallint

表或檢視中列的個數……

syscat.views:檢視的定義資訊。詳細說明見表 2。

表 2. syscat.views 檢視的說明

列名資料型別

描述viewschema

varchar(128)

檢視的 schema

viewname

varchar(128)

檢視名稱

readonly

char(1)

檢視是否唯讀:

valid

char(1)

檢視狀態是否合法:

text

clob (64k)

檢視的源程式(ddl)……

syscat.routines:db2 udf,系統方法(system-generated method),使用者定義方法(user-defined method)和儲存過程(sp)的定義。我們可以認為該檢視包含了資料庫中程式的定義。見表 3。

表 3. syscat.routines 檢視的說明

列名資料型別

描述routineschema

varchar(128)

記錄程式的 schema

routinename

varchar(128)

記錄程式名稱

routinetype

char(1)

記錄程式型別:

specificname

varchar(128)

程式例項的名稱(可以指定,也可以由系統自動生成)

valid

char(1)

如果儲存過程依賴的一些物件被刪除或修改了,該儲存過程必須要被重建

text

clob(1m)

如果是用 sql 編寫的程式,該欄位記錄了其建立的 ddl…

表 4 所示的 syscat.routinedep 說明了 db2 udf與其他物件的依賴關係。

表 4. syscat.routinedep 檢視的說明

列名資料型別

描述routineschema

varchar(128)

依賴於其他物件的 db2 程式的 schema

routinename

varchar(128)

依賴於其他物件的 db2 程式的名稱

btype

char(1)

依賴物件的型別:

bschema

varchar(128)

被依賴的物件的 schema

bname

varchar(128)

被依賴的物件的名稱

表 5 所示的 syscat.columns 說明了表或檢視的每乙個列的資訊。

表 5. syscat.columns 檢視的說明

列名資料型別

描述tabschema

varchar(128)

表或檢視的 schema

tabname

varchar(128)

表或檢視名稱

colname

varchar(128)

列名稱keyseq

smallint

記錄列在其表的主鍵的位置

DB2之臨時表

db2支援session臨時表.該錶只能存在於某一session或某一交易上下文中,對其他使用者不可見.db2 v8增加了對臨時表的索引的支援,這對於提公升查詢速度比較有意義 下面舉例子來說明session臨時表的使用 1.在建立session臨時表前,您必須建立臨時表空間 create user ...

DB2 儲存過程建立 系統表

前段時間做了資料表拆分,進行資料遷移,用到一些sql命令,語句記錄下來 db2look是db2用於生成資料庫ddl語句的乙個工具 命令 db2look d dbname a e p i userid w password o d sample.sql db2look d 資料名稱 e 抽取複製資料庫...

DB2學習之表誤刪除恢復

db2 drop表後恢復 資料庫版本 資料庫版本 db2 9.7 目的 由於經常操作不當,引起誤刪表和資料庫,對資料恢復起來很困難,其實測試後也覺得沒什麼挺容易的,特此親自測試,得出一恢復方法,總結如下文旦,如有不當還請及時提出 注意 在恢復之前一定要備份資料庫,在恢復中需要時間截點,不同版本資料庫...