DB2常用指令集合

oneweaklight發表於2011-04-17

一、載入資料:
1、 以預設分隔符載入,預設為“,”號
db2 "import from btpoper.txt of del insert into btpoper"
2、 以指定分隔符“|”載入
db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"

二、解除安裝資料:
1、 解除安裝一個表中全部資料
db2 "export to btpoper.txt of del select * from btpoper"
db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"

2、 帶條件解除安裝一個表中資料
db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'"
db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'"
db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'"

三、查詢資料結構及資料:
db2 "select * from btpoper"
db2 "select * from btpoper where brhid='907020000' and oprid='0001'"
db2 "select oprid,oprnm,brhid,passwd from btpoper"

四、刪除表中資料:
db2 "delete from btpoper"
db2 "delete from btpoper where brhid='907020000' or brhid='907010000'"

五、修改表中資料:
db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'"
db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'"

六、聯接資料庫
db2 connect to btpdbs

七、清除資料庫聯接
db2 connect reset 斷開資料庫連線
db2 terminate 斷開資料庫連線
db2 force applications all 斷開所有資料庫連線

八、備份資料庫
1、 db2 backup db btpdbs
2、 db2move btpdbs export
db2look -d btpdbs -e -x [-a] -o crttbl.sql

九、恢復資料庫
1、 db2 restore db btpdbs without rolling forward
2、 db2 -tvf crtdb.sql
crtdb.sql檔案內容:create db btpdbs on /db2catalog
db2 -stvf crttbl.sql
db2move btpdbs import

十、DB2幫助命令:
db2 ?
db2 ? restroe
db2 ? sqlcode (例:db2 ? sql0803) 注:code必須為4位數,不夠4位,前面補0


十一、bind命令:將應用程式與資料庫作一捆綁,每次恢復資料庫後,建議都要做一次bind
(1) db2 bind br8200.bnd
(2) /btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd

十二、檢視資料庫引數:
db2 get dbm cfg
db2 get db cfg for btpdbs

十三、修改資料庫引數:
db2 update db cfg for btpdbs using LOGBUFSZ 20
db2 update db cfg for btpdbs using LOGFILSIZ 5120
改完後,應執行以下命令使其生效:
db2 stop
db2 start


補充:

db2 set schema btp 修改當前模式為"btp"

db2 list tablespaces show detail 檢視當前資料庫表空間分配狀況
db2 list tablespace containers for 2 show detail 檢視tablespace id=2使用容器所在目錄
db2 list application
db2 list db directory 列出所有資料庫
db2 list active databases 列出所有活動的資料庫
db2 list tables for all 列出當前資料庫下所有的表
db2 list tables for schema btp 列出當前資料庫中schema為btp的表
db2 list tablespaces show detail 顯示資料庫空間使用情況
db2 list packages for all


db2 "import from tab76.ixf of ixf commitcount 5000 insert into achact"

db2 "create table achact_t like achact"

db2 "rename table achact_t to achact"

db2 "insert into achact_t select * from achact where txndt>=(select lstpgdt from
acmact where actno=achact.actno)"



db2 get snapshot for dynaimic sql on jining

刪除一個例項:
# cd /usr/lpp/db2_07_01/instance
# ./db2idrop InstName

列出所有DB2例項:
# cd /usr/lpp/db2_07_01/bin
# ./db2ilist

為資料庫建立編目
$ db2 catalog db btpdbs on /db2catalog
取消已編目的資料庫btpdbs
$ db2 uncatalog db btpdbs

檢視版本
# db2level

顯示當前資料庫管理例項
$ db2 get instance

設定例項系統啟動時是否自動啟動。
$ db2iauto -on 自動啟動
$ db2iauto -off 不自動啟動

常用命令:

1.啟動例項(db2inst1):

db2start

2.停止例項(db2inst1):

db2stop

3. 列出所有例項(db2inst1)

db2ilist

4.列出當前例項:

db2 get instance

5. 設定當前例項

set db2instance=db2

6. 察看示例配置檔案:

db2 get dbm cfg|more

7. 更新資料庫管理器引數資訊:

db2 update dbm cfg using para_name para_value

8. 建立資料庫:

db2 create db test

9. 察看資料庫配置引數資訊

db2 get db cfg for test|more

10. 更新資料庫引數配置資訊

db2 update db cfg for test using para_name para_value

11.刪除資料庫:

db2 drop db test

12.連線資料庫與斷開連線資料庫

db2 connect to test
db2 disconnect test
13.列出所有表空間的詳細資訊。

db2 list tablespaces show detail

14.列出容器的資訊

db2 list tablespace containers for tbs_id show detail

15.建立表:

db2 ceate table tb1(id integer not null,name char(10))

16.列出所有表

db2 list tables

17.插入資料:

db2 insert into tb1 values(1,’sam’);

db2 insert into tb2 values(2,’smitty’);

18.查詢資料:

db2 select * from tb1

19.刪除資料:

db2 delete from tb1 where id=1

20.建立索引:

db2 create index idx1 on tb1(id);

21.建立檢視:

db2 create view view1 as select id from tb1

22.查詢檢視:

db2 select * from view1

23.節點編目

db2 catalog tcp node node_name remote server_ip server server_port

24.察看埠號

db2 get dbm cfg|grep SVCENAME

25.測試節點的附接

db2 attach to node_name

26.察看本地節點

db2 list node direcotry

27.節點反編目

db2 uncatalog node node_name

28.資料庫編目

db2 catalog db db_name as db_alias at node node_name

29.察看資料庫的編目

db2 list db directory

30.連線資料庫

db2 connect to db_alias user user_name using user_password

31.資料庫反編目

db2 uncatalog db db_alias

32.匯出資料

db2 export to myfile of ixf messages msg select * from tb1

33.匯入資料

db2 import from myfile of ixf messages msg replace into tb1

34.匯出資料庫的所有表資料

db2move test export

35.生成資料庫的定義

db2look -d db_alias -a -e -m -l -x -f -o db2look.sql

36.建立資料庫

db2 create db test1

37.生成定義

db2 -tvf db2look.sql

38.匯入資料庫所有的資料

db2move db_alias import

39.重組檢查

db2 reorgchk

40.重組表tb1

db2 reorg table tb1

41.更新統計資訊

db2 runstats on table tb1

42.備份資料庫test

db2 backup db test

43.恢復資料庫test

db2 restore db test

44. 命令處理器引數

列舉可用命令格式:db2 list command options

更改命令格式:update command options using option value(on/off)

例項:比如更改命令列自動提交的引數

db2=>update command options using C off--或on,只是臨時改變

命令列下 db2set db2options=+c --或-c,永久改變



45. 獲取當前機器db2所有配置資訊:

db2support . -d dbname -c

此時資料庫管理程式將生成一個db2support 壓縮檔案包。



46. 更新資料庫版本級別(適用於使用不通版本備份恢復時使用)

v7: db2updv7

db2updv7 –d dbname –u username –p password

v8: db2updv8

db2updv7 –d dbname –u username –p password

47. 獲取當前機器的管理級配置

db2set –all

48. 強制終止指定連線

db2 force application appname

49.強制終止所用連線

db2 force application all

附:一些具體使用例項

//建立資料庫DB2_GCB

CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB

USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32

//連線資料庫

connect to sample1 user db2admin using 8301206

//建立別名

create alias db2admin.tables for sysstat.tables;

CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS

create alias db2admin.columns for syscat.columns;

create alias guest.columns for syscat.columns;

//建立表

create table zjt_tables as

(select * from tables) definition only;

create table zjt_views as

(select * from views) definition only;

//插入記錄

insert into zjt_tables select * from tables;

insert into zjt_views select * from views;

//建立檢視

create view V_zjt_tables as select tabschema,tabname from zjt_tables;

//建立觸發器

CREATE TRIGGER zjt_tables_del

AFTER DELETE ON zjt_tables

REFERENCING OLD AS O

FOR EACH ROW MODE DB2SQL

Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10))

//建立唯一性索引

CREATE UNIQUE INDEX I_ztables_tabname

ON zjt_tables(tabname);

//檢視錶

select tabname from tables

where tabname='ZJT_TABLES';

//檢視列

select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 型別,LENGTH as 長度

from columns

where tabname='ZJT_TABLES';

//檢視錶結構

db2 describe table user1.department

db2 describe select * from user.tables

//檢視錶的索引

db2 describe indexes for table user1.department

//檢視檢視

select viewname from views

where viewname='V_ZJT_TABLES';

//檢視索引

select indname from indexes

where indname='I_ZTABLES_TABNAME';

//檢視存貯過程

SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)

FROM SYSCAT.PROCEDURES;

//型別轉換(cast)

ip datatype:varchar

select cast(ip as integer)+50 from log_comm_failed

//重新連線

connect reset

//中斷資料庫連線

disconnect db2_gcb

//view application

LIST APPLICATION;

//kill application

FORCE APPLICATION(0);

db2 force applications all (強迫所有應用程式從資料庫斷開)

//lock table

//獨佔

lock table test in exclusive mode

//共享

lock table test in share mode

//顯示當前使用者所有表

list tables

//列出所有的系統表

list tables for system

//顯示當前活動資料庫

list active databases

//檢視命令選項

list command options

//系統資料庫目錄

LIST DATABASE DIRECTORY

//表空間

list tablespaces

//表空間容器

LIST TABLESPACE CONTAINERS FOR

Example: LIST TABLESPACE CONTAINERS FOR 1

//顯示使用者資料庫的存取許可權

GET AUTHORIZATIONS

//啟動例項

DB2START

//停止例項

db2stop

//表或檢視特權

grant select,delete,insert,update on tables to user

grant all on tables to user WITH GRANT OPTION

//程式包特權

GRANT EXECUTE

ON PACKAGE PACKAGE-name

TO PUBLIC

//模式特權

GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER

//資料庫特權

grant connect,createtab,dbadm on database to user

//索引特權

grant control on index index-name to user

//資訊幫助 (? XXXnnnnn )

例:? SQL30081

//SQL 幫助(說明 SQL 語句的語法)

help statement

例如,help SELECT

SQLSTATE 幫助(說明 SQL 的狀態和類別程式碼)

? sqlstate 或 ? class-code

//更改與“管理伺服器”相關的口令

db2admin setid username password

//建立 SAMPLE 資料庫

db2sampl

db2sampl F:(指定安裝盤)

//使用作業系統命令

! dir

//轉換資料型別 (cast)

SELECT EMPNO, CAST(RESUME AS VARCHAR(370))

FROM EMP_RESUME

WHERE RESUME_FORMAT = 'ascii'

//要執行 DB2 Java 儲存過程或 UDF,還需要更新伺服器上的 DB2 資料庫管理程式配置,以包括在該機器上安

裝 JDK 的路徑

db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk

TERMINATE

update dbm cfg using SPM_NAME sample

//檢查 DB2 資料庫管理程式配置

db2 get dbm cfg

//檢索具有特權的所有授權名

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH

ORDER BY GRANTEE, GRANTEETYPE, 3

create table yhdab

(id varchar(10),

password varchar(10),

ywlx varchar(10),

kh varchar(10));

create table ywlbb

(ywlbbh varchar(8),

ywmc varchar(60))

//修改表結構

alter table yhdab ALTER kh SET DATA TYPE varchar(13);

alter table yhdab ALTER ID SET DATA TYPE varchar(13);

alter table lst_bsi alter bsi_money set data type int;

insert into yhdab values

('20000300001','123456','user01','20000300001'),

('20000300002','123456','user02','20000300002');

//業務型別說明

insert into ywlbb values

('user01','業務申請'),

('user02','業務撤消'),

('user03','費用查詢'),

('user04','費用自繳'),

('user05','費用預存'),

('user06','密碼修改'),

('user07','發票列印'),

('gl01','改使用者基本資訊'),

('gl02','更改支付資訊'),

('gl03','日統計功能'),

('gl04','沖帳功能'),

('gl05','對帳功能'),

('gl06','計費功能'),

('gl07','綜合統計')

說明 目錄檢視

檢查約束 SYSCAT.CHECKS

列 SYSCAT.COLUMNS

檢查約束引用的列 SYSCAT.COLCHECKS

關鍵字中使用的列 SYSCAT.KEYCOLUSE

資料型別 SYSCAT.DATATYPES

函式引數或函式結果 SYSCAT.FUNCPARMS

參考約束 SYSCAT.REFERENCES

模式 SYSCAT.SCHEMATA

表約束 SYSCAT.TABCONST

表 SYSCAT.TABLES

觸發器 SYSCAT.TRIGGERS

使用者定義函式 SYSCAT.FUNCTIONS

檢視 SYSCAT.VIEWS

二進位制大物件 (BLOB) 字串。

字元大物件 (CLOB) 字串,它的字元序列可以是單位元組字元或多位元組字元,或這兩者的組合。

雙位元組字元大物件 (DBCLOB) 字串,它的字元序列是雙位元組字元。

第一種規範形式

表中的每一行和每一列均有一個值,永遠不會是一組值。

第二種規範形式

不在關鍵字中的每一列提供取決於整個關鍵字的事實。

第三種規範形式

每個非關鍵字列提供與其他非關鍵字列無關並只取決於該關鍵字的事實。

第四種規範形式

沒有行包含有關一個實體的兩個或更多個獨立的多值事實。

資料型別 型別 特性 示例或範圍

CHAR(15) 定長字串 最大長度為 254 'Sunny day '

VARCHAR(15) 變長字元 最大長度為 4000 'Sunny day'

SMALLINT 數字 長度為 2 位元組精度為 5 位範圍為-32768 至 32767

INTEGER 數字 長度為 4 位元組精度為 10 位範圍為-2147483648 至 2147483647

REAL 數字 單精度浮點32 位近似值 範圍為 -3.402E+38 至-1.175E-37或 1.175E-37 至-3.402E+38或零

DOUBLE 數字 雙精度浮點64 位近似值 範圍為-1.79769E+308 至-2.225E-307或 2.225E-307 至 1.79769E+308

或零

DECIMAL(5,2) 數字 精度為 5小數位為 2 範圍為 -10**31+1 至 10**31-1

DATE 日期時間 三部分值 1991-10-27

TIME 日期時間 三部分值 13.30.05

TIMESTAMP 日期時間 七部分值 1991-10-27-13.30.05.000000

列函式

列函式對列中的一組值進行運算以得到單個結果值。下列就是一些列函式的示例。

AVG

返回某一組中的值除以該組中值的個數的和

COUNT

返回一組行或值中行或值的個數

MAX

返回一組值中的最大值

MIN

返回一組值中的最小值

標量函式

標量函式對值進行某個運算以返回另一個值。下列就是一些由DB2 通用資料庫提供的標量函式的示例。

ABS

返回數的絕對值

HEX

返回值的十六進位制表示

LENGTH

返回自變數中的位元組數(對於圖形字串則返回雙位元組字元數。)

YEAR

抽取日期時間值的年份部分
[@more@]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25067344/viewspace-1048761/,如需轉載,請註明出處,否則將追究法律責任。