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);
如有不當或不全之處,歡迎指出和補充;感謝您的閱看,希望對您有所助益!