近一年來在項目開發(fā)中使用到了IBM的DB2 9.1的數(shù)據(jù)庫產(chǎn)品,跟Oracle相比一些命令有很大的區(qū)別,而它最大的功能是支持
xml存儲、檢索機制,通過XPath進行解析操作,使開發(fā)人員免于對xml文件在應(yīng)用進行解析處理,先對其常用命令進行一下匯
總,以免遺忘。
注意:在執(zhí)行如下命令時,需要首先安裝db2客戶端并通過在運行中輸入db2cmd進行初始化
一、基礎(chǔ)篇
1、db2 connect to <數(shù)據(jù)庫名> --連接到
本地數(shù)據(jù)庫名
db2 connect to <數(shù)據(jù)庫名> user <用戶名> using <密碼> --連接到
遠端數(shù)據(jù)庫
2、 db2 force application all --強迫所有應(yīng)用斷開數(shù)據(jù)庫連接
3、db2 backup db db2name<數(shù)據(jù)庫名稱> --備份整個數(shù)據(jù)庫數(shù)據(jù)
db2 restore db <db2name> --還原數(shù)據(jù)庫
4、db2 list application --查看所有連接(需要連接到具體數(shù)據(jù)庫才能查看)
5、db2start --啟動數(shù)據(jù)庫
db2stop --停止數(shù)據(jù)庫
6、create database <數(shù)據(jù)庫名> using codeset utf-8 territory CN --創(chuàng)建數(shù)據(jù)庫使用utf-8編碼
7、db2 catalog 命令
db2 catalog tcpip node <接點名稱> remote <遠程數(shù)據(jù)庫地址> server <端口號> --把遠程數(shù)據(jù)庫映射到本地接點一般為50000
db2 catalog db <遠程數(shù)據(jù)庫名稱> as <接點名稱> at node PUB11 --遠程數(shù)據(jù)庫名稱到本地接點
db2 CONNECT TO <接點名稱> user <用戶名> using <密碼> --連接本地接點訪問遠程數(shù)據(jù)庫
8、數(shù)據(jù)庫導(dǎo)出
db2look -d <數(shù)據(jù)庫名> -u <用戶> -e -o <腳本名稱>.sql --導(dǎo)出數(shù)據(jù)庫的表結(jié)構(gòu),其中用戶空間一般為db2admin/db2inst1
db2look -d <數(shù)據(jù)庫名> -u <用戶> -t <表1> <表2> -e -o <腳本名稱>.sql --導(dǎo)出數(shù)據(jù)庫中表1和表2的表結(jié)構(gòu)
db2move <數(shù)據(jù)庫名> export --導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)
db2move <數(shù)據(jù)庫名> export -tn <表1>,<表2> --導(dǎo)出數(shù)據(jù)庫中表和表數(shù)據(jù)
9、數(shù)據(jù)庫導(dǎo)入
db2 -tvf <腳本名稱>.sql --把上述導(dǎo)出的表結(jié)構(gòu)導(dǎo)入到數(shù)據(jù)庫表結(jié)構(gòu)
db2move <數(shù)據(jù)庫名> load -lo replace --把上述“db2move <數(shù)據(jù)庫名> export “導(dǎo)出的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中并把相同的數(shù)據(jù)替換掉
在實際使用過程中,如果用到db2自增主鍵,需要使用by default, 而不是always,功能是一樣的,但這樣在數(shù)據(jù)移植時候會很方
便!
10、db2 connect reset 或 db2 terminate --斷開與數(shù)據(jù)庫的連接
11、db2set db2codepage=1208 --修改頁編碼為1208
12、db2 describe table <表名> --查看表結(jié)構(gòu)
13、db2 list tables --查看數(shù)據(jù)庫中所有表結(jié)構(gòu)
list tables for system --列出所有系統(tǒng)表
14、db2 list tablespaces --列出表空間
二、高級篇
15、fetch first 10 rows only --列出表中前10條數(shù)據(jù)
例如:select * from <表名> fetch first 10 rows only
16、coalesce(字段名,轉(zhuǎn)換后的值) --對是null的字段進行值轉(zhuǎn)換
例如:select coalesce(id,1) from <表名> --對表中id如果為null轉(zhuǎn)換成1
17、dayofweek(日期) --計算出日期中是周幾(1是周日,2是周一.......7是周六)
dayofweek_iso --計算出日期中是周幾(1是周一.......7是周日)
例如:dayofweek(date(2008-01-16)) --它會返回是4,代表星期三
dayofweek_iso(date(2008-01-16)) --它會返回是3,代表星期三
18、dayofyear(日期) --一年中的第幾天,范圍在1-366范圍之內(nèi)
注意:參數(shù)中日期的格式是YYYY-MM-DD的形式,如果不是需要進行轉(zhuǎn)換,否則函數(shù)不能使用
例如:日期是20080116必須要進行轉(zhuǎn)換
dayofweek(concat(concat(concat(substr(openDate,1,4),'-'),concat(substr(openDate,5,2),'-')),substr(openDate,7,2))) as week)
這樣格式正確的。
19、concatt(參數(shù)1,連接值) --把參數(shù)1加上連接值組成一個新值。
例如: concat('aa','b') --返回是aab
把oracle表導(dǎo)入到db2數(shù)據(jù)庫中,有些字段類型需要進行轉(zhuǎn)換,具體看:
oracle與db2數(shù)據(jù)類型轉(zhuǎn)換
以上是自己經(jīng)常用到一些db2命令,db2命令很多,不常用的沒有在上面記錄,以后如使用新命令會繼續(xù)進行更新!