講解IBM DB2數據庫的三十一個使用技巧

1. 查看本地節點目錄

命令窗口中輸入:db2 list node directory

2. 編目一個TCP/IP節點

命令窗口:db2 catalog tcpip node remote server ostype

3. 取消節點編目

db2 uncatalog node

4. 查看系統數據庫目錄

db2 list database directory

5. 查看本地數據庫目錄

db2 list database directory on <盤符>

在本地數據庫目錄中有而系統數據庫目錄中沒有的數據庫不能訪問,可以在控制中心中選中<數據庫>右鍵單擊選擇添加,然後輸入需要添加的數據庫名稱或者點擊刷新按鈕選擇數據庫,加入數據庫後即可以訪問。

6. 編目數據庫

db2 catalog database as at node

7. 取消數據庫編目

db2 uncatalog database

8. 測試遠程數據庫的連接

db2 connect to user using

9. 任何用戶均可通過設置Current Schema專用寄存器爲特定的數據庫連接設置默認模式,初始默認值爲當前會話用戶的權限ID。

set schema =

可以由用戶交互式的使用,也可在應用程序中使用,如果用Dynamicrules Bind選項綁定包,這個語句就沒有作用。此語句不在事務控制之下。

10. 代碼頁的設置

在創建數據庫時設置字符集

create database using codeset territory

例:

create database dbtest using codeset IBM-437 territory US

也可以設置整個數據庫的代碼頁,在win2000/NT/xp中,在我的電腦-->屬性-->高級-->環境變量中添加變量DB2CODEPAGE = ,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2命令窗口輸入 db2set DB2CODEPAGE=1386,設置後需要重新啓動DB2生效。

11. DB2低版本數據到高版本的遷移

先將低版本數據備份使用恢複功能導入高版本數據庫,然後在命令窗口輸入 db2 migrate database 。

12. 表名或模式中含有引號時訪問表

命令窗口:db2 select * from "tabschema"."tabname"

命令行處理器:db2=> select * from "tabschema"."tabname"

13. 導出數據庫的表結構生成DDL文件

命令窗口:db2look -d -e -c -o

14. 執行腳本文件

命令窗口:db2 -tvf

15. 代碼頁的轉換

16. 獲取當前DB2的版本

select * from sysibm.sysversions

17. DB2表的字段的修改限制?

只能修改VARCHAR2類型的並且只能增加不能減少

alter table alter column set data type varchar(SIZE)

18. 如何查看表的結構?

describe table

or

describe select * from .

19. 如何快速清除一個大表?

ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE

20. 如何查看數據庫的存儲過程?

SELECT * FROM SYSCAT.PROCEDURES

21. 如何查看表的約束?

SELECT * FROM SYSCAT.CHECKS WHERE TABNAME =

22. 如何查看表的引用完整約束?

SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME =

23. 如何知道BUFFERPOOLS狀況?

select * from SYSCAT.BUFFERPOOLS

24. 如何在命令行下查看修改實例和數據庫配置參數?

查看實例配置參數: db2 get dbm cfg

修改實例配置參數: db2 update dbm cfg using 參數名 新值

查看數據庫配置參數: db2 get db cfg for

修改數據庫配置參數: db2 update db cfg for using 參數名 新值

25. 如何修改緩沖區?

增加緩沖區: create bufferpool size [pagesize 4096] {[not] EXTENDED STORAGE}

修改緩沖區: alter bufferpool size {[not] EXTENDED STORAGE}

刪除緩沖區: drop bufferpool

如果緩沖區大小設置爲 -1 表示緩沖池的頁面數目由數據庫配置參數buffpage決定。

注意: 數據庫配置參數buffpage僅對緩沖區大小設置爲 -1 的緩沖池起作用。

26. 多個字段時如何不通過使用select子句使用in/not in

select * from tabschema.tabname where (colA, colB, colC) [not] in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn))

27. 查看當前連接到數據庫的應用

db2 list application [show detail]

28. 如何確認DB2數據庫的一致性

db2dart /DB

/DB表示檢查整個數據庫的一致性

29. 測試SQL語句的性能

db2batch -d -f [-a userid/passwd] [-r ]

-r 選項表示將查詢結果輸出到一個文件中。

30. 導出某個表的數據

export to

如:導出用戶表

export to c:user.ixf of ixf select * from user

31. 導入數據

import from

如:導入用戶表。導入時可以直接建立新表。如果有該表存在也可以用INSERT 插入,或者用UPDATE更新

import from c:user.ixf of ixf [Create/Insert into / update] tablename

 
關于IBM DB2 數據庫的使用小技巧小結(1)
  1. 查看本地節點目錄   命令窗口中輸入:db2 list node directory   2. 編目一個TCP/IP節點   命令窗口:db2 catalog tcpip node remote server ostype   3. 取消節點編目   db2 uncatalog node   4...查看完整版>>關于IBM DB2 數據庫的使用小技巧小結(1)
 
實例講解一個shell處理db2數據庫的程序
用shell抽取db2的數據,並進行處理: #SQL文定義SQL="SELECT AAA, BBB, CCC FROM MYTBL1"#執行SQLSDATA=`db2 "$SQL"`#返回值判斷if [ $? -ne 0 ]then#顯示db2返回的錯誤信息echo "$SDATA"exit 1fi#對取得的數據進行處...查看完整版>>實例講解一個shell處理db2數據庫的程序
 
不同操作系統之間遷移DB2數據庫的一個案例
  假設我們有一個IBM DB2數據庫,這個數據庫裏有很多表(可能上百張甚至更多),又有很多索引、外鍵約束、觸發器。最要命的是還有一些含有自增字段的表(含有GENERATED ALWAYS AS IDENTITY定義的字段的表)。我們也...查看完整版>>不同操作系統之間遷移DB2數據庫的一個案例
 
不同操作系統之間遷移DB2數據庫的一個案例
假設我們有一個IBM DB2數據庫,這個數據庫裏有很多表(可能上百張甚至更多),又有很多索引、外鍵約束、觸發器。最要命的是還有一些含有自增字段的表(含有GENERATED ALWAYS AS IDENTITY定義的字段的表)。我們也沒有...查看完整版>>不同操作系統之間遷移DB2數據庫的一個案例
 
不同操作系統之間遷移DB2數據庫的一個案例
假設我們有一個IBM DB2數據庫,這個數據庫裏有很多表(可能上百張甚至更多),又有很多索引、外鍵約束、觸發器。最要命的是還有一些含有自增字段的表(含有GENERATED ALWAYS AS IDENTITY定義的字段的表)。我們也沒有...查看完整版>>不同操作系統之間遷移DB2數據庫的一個案例