天天看點

DB2資料庫實用小結DB2資料庫實用小結

DB2資料庫實用小結

1、建立DB2資料庫執行個體(在db2 =>下執行)

db2 =>

create tablespace resource1 managed by database using (file ‘/home/db2inst1/db2inst1/NODE0000/YOURDB執行個體/cont0’ 1500000)

2、DB2資料庫修改表空間(在db2授權使用者即可執行,使用db2 ” “)

db2 “alter tablespace RESOURCE add(file ‘/home/db2inst1/db2inst1/NODE0000/YOURDB執行個體/cont1’ 16G)”

3、檢視db2資料庫版本(在db2使用者執行)或db2level(在授權使用者執行即可)

[email protected]:~> db2licm -l

Product name: “DB2 Enterprise Server Edition”

License type: “CPU Option”

Expiry date: “Permanent”

Product identifier: “db2ese”

Version information: “10.1”

Enforcement policy: “Soft Stop”

Features:

DB2 Storage Optimization: “Not licensed”

DB2 pureScale: “Not licensed”

Product name: “DB2 Connect Server”

Expiry date: “Expired”

Product identifier: “db2consv”

Version information: “10.1”

Concurrent connect user policy: “Disabled”

Enforcement policy: “Soft Stop”

4、DB2資料庫啟動(在db2使用者執行)

[email protected]:~> db2start

5、DB2資料庫執行sql腳本指令()

db2 -tvf d:\ddl.sql -z d:\ddl.log

6、DB2資料庫連接配接(在授權使用者即可執行)

db2 connect to testdb(執行個體名) user tsas(使用者名) using password(密碼)

7、斷開資料庫所有連接配接(在db2使用者執行)

[email protected]:~> db2 terinate

8、DB2資料庫強制停止 (在db2使用者執行)

[email protected]:~> db2stop force

2018-08-03 21:40:46 0 0 SQL1064N DB2STOP processing was successful.

SQL1064N DB2STOP processing was successful.

9、DB2資料庫隻查詢指定條數(在授權使用者即可執行)

[email protected]:~> db2 “select * from APP_WORKDAYS where 1=1 fetch first 2 rows only”

WORKDATE ISWORKDAY

2012-09-02 0

2012-09-03 1

10、導出單個表表結構(在db2使用者執行)

[email protected]:~> db2look -e -d tsasdb -i tsas -w password -tw APP_WORKDAYS -o APP_WORKDAYS.sql

– No userid was specified, db2look tries to use Environment variable USER

– USER is: DB2INST1

– Generate DDLs for tables whose names match the pattern criteria (wildcard characters) of the table name

– Creating DDL for table(s)

– Output is sent to file: APP_WORKDAYS.sql

11、建立索引(在授權使用者執行即可)

db2 “create index index_name on “FINANCE”.”PUB_ACCTCHKINFO”(“PAYEEBANKNO”,”PAYEEOPENBANKNO”,”PAYEEACCTNO”,”PAYEEACCTNAME”)”

非唯一索引:db2 “create index ind_taxfile on table_name(taxfile)”

唯一索引:db2 “create unique index ind_empno on emp(empno)”

12、檢視已有索引(在授權使用者執行即可)

db2 “describe indexes for table table_name show detail”
  • 不使用 show detail 也可

13、删除索引(在授權使用者執行即可)

db2 “drop index ind_name”

14、DB2資料庫建立檢查限制(在授權使用者執行即可)

db2 “ALTER TABLE table_name ADD CHECK (ziduanming like ‘2%’)”
  • 資料庫表插入資料不滿足檢查限制時,java項目sql抛異常:ConstrainViolationException

15、查詢顯示列出(或輸出到檔案 最後指定輸出檔案即可> /home/test/test1.log )DB2資料庫表的所有索引和限制;

db2look -d tsasdb -z tsas -t “PUB_OPERINTO” -a -e -c > /home/test/test1.log

`[email protected]:~> db2look -d tsasdb -z tsas -t “PUB_OPERINTO” -a -e -c

– This CLP file was created using DB2LOOK Version “10.1”

– Timestamp: Mon 23 Apr 2018 04:40:41 PM CST

– Database Name: TSASDB

– Database Manager Version: DB2/LINUXX8664 Version 10.1.1

– Database Codepage: 1386

– Database Collating Sequence is: UNIQUE

CONNECT TO TSASDB;

–DDL Statements for table “TSAS “.”PUB_OPERINTO”

CREATE TABLE “TSAS “.”PUB_OPERINTO” (

“OPERTYPE” VARCHAR(4) NOT NULL ,

“OPERNAME” VARCHAR(32) ,

“OPERTIME” VARCHAR(10) NOT NULL ,

“ISINTO” CHAR(1) ,

“DATACOUNT” VARCHAR(12) )

IN “USERSPACE1” ;

–DDL Statements for primary key on Table “TSAS “.”PUB_OPERINTO”

ALTER TABLE “TSAS “.”PUB_OPERINTO”

ADD CONSTRAINT “SQL180423162654800” CHECK

(OPERTIME like’2%’)

ENFORCED

ENABLE QUERY OPTIMIZATION;

–DDL Statements for check constraints on Table “TSAS “.”PUB_OPERINTO”

ALTER TABLE “TSAS “.”PUB_OPERINTO”

ADD CONSTRAINT “SQL180423163315500” CHECK

(OPERTIME like’2%’)

ENFORCED

ENABLE QUERY OPTIMIZATION;

COMMIT WORK;

CONNECT RESET;

TERMINATE;

  • 删除檢查限制

    [email protected]:~> db2 “ALTER TABLE PUB_OPERINTO DROP CHECK SQL180423162654800”

    [email protected]:~> db2 “ALTER TABLE PUB_OPERINTO DROP CHECK SQL180423163315500”

    `

16、catalog server 端的 node ,指令如下:

db2 catalog tcpip node node_name remote hostname server service_port

db2 uncatalog node node_name (取消節點的編目)

其中 node_name 是由你任意起的一個結點名,結點名不能跟已有的結點名重複(可通過db2 list node directory 檢視),hostname也可為IP address,service_port為端口号一般預設為50000。節點目錄用于存儲遠端資料庫的所有連通性資訊。

17、catalog 遠端 DB2 資料庫,指令如下:

db2 catalog db db_name [as alias_name] at node node_name

db2 uncatalog db db_name (取消資料庫的編目)

db_name 是指遠端資料庫的名字, alias_name 是用戶端執行個體名(可以忽略), db2node 是指上面你所指定的節點node !

18、連接配接資料庫,指令如下:

db2 connect to db_name user user_name using password

db_name 是指資料庫的名字, user_name 是資料庫使用者名,password是資料庫密碼

19、用db2look指令生成表結構的DLL腳本

db2look -d db_name -i user_name -w password -a -e -o d:\script.sql

db_name 是指資料庫的名字, user_name 是資料庫使用者名,password是資料庫密碼

20、用db2move導出所有表的資料

db2move db_name export -u user_name -p password

db_name 是指資料庫的名字,user_name 是資料庫使用者名,password是資料庫密碼

21、用export導出指定的表資料

db2 “export to d:\data\tab1.ixf of ixf lobs to d:\data\ lobfile lobs modified by lobsinsepfiles messages d:\data\tab1.msgselect * from schema_name.table_name”

db2 “export to /home/test/table_name.txt of del select * from schema_name.table_name”

schema_name 是表所屬,table_name是表名, lobsinsepfiles 或 lobsinfile 是生成lob檔案 前一個是生成每個,後面是生成到一個檔案中

22、用db2move導入所有表的資料

db2move db_name import -io replace -u user_name -p password

23、用import導入指定的表資料

db2 “import from d:\data\tab1.ixf of ixf messages d:\data\tab1.msg insert into schema_name.table_name”

db2 “import from /home/test/table_name.txt of del insert into schema_name.table_name”

或者指定條數分批插入

db2 “import from /home/test/table_name.txt of del commitcount 500 insert into schema_name.table_name”

24、–DB2資料庫僞表(類似于ORACLE的dual)

select VARCHAR_FORMAT(current TIMESTAMP,’YYYY-MM-DD HH24:MI:SS’) from sysibm.sysdummy1;

select 1+2 from sysibm.sysdummy1

25、檢視資料庫執行個體(授權使用者執行即可)

db2ilist

26、建立資料庫的同時指定字元編碼(db2 =>下執行)

db2 => create database topsdb using codeset GBK territory zh_cn

27、檢視資料庫所有配置詳細資訊

db2 =>get db cfg for tsasdb

授權使用者下 db2 get db cfg for tsasdb

28、删除臨時表空間

drop tablespace userspace1

29、删除資料庫

db2 drop db testdb

30、修改資料庫字段的長度

ALTER table CPAY_CENTPAYBILL(表名) alter ADDWORD(字段名) set data type VARCHAR(200);

如有不當或不全之處,歡迎指出和補充;感謝您的閱看,希望對您有所助益!