DB2のコマンド整理
DB2を使うことになったのでよく使いそうなコマンドを整理しておく。徐々に更新していくかも。
対象バージョンはV 9.7
データベースへの接続
db2 connect to {データベース名} user {username} using {password}
データベース接続の解除
b2 connect reset / db2 terminate
※resetとterminateの違いは?
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001973.html
TERMINATE と CONNECT RESET は両方ともデータベースへの接続を中断しますが、 TERMINATE のみがバックエンド・プロセスを終了します。
ファイルのコマンド・SQLを実行する。
$ db2 -tvf FILENAME
-t: セミコロンをステートメントの終了文字とする
-v: 実行結果を標準出力に出す
-f: ファイルを入力にする
その他のオプションは以下のサイトへ。
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html
データをファイルへの書き出す。
db2 export to FILENAME of del "select * from employee"
「of del」は出力ファイルの形式指定で、カンマ(,) 区切り文字付き ASCII フォーマットで出力される。
他の出力フォーマットとしてixf(DB2バイナリ形式)がある。
データをファイルから読み込む。
db2 import from FILENAME of del [insert|replace] into TABLENAME
db2 load from FILENAME of del [insert|replace] into TABLENAME
insertは追加、replaceは洗い替えを行う。
大量データの場合はloadコマンドの方が高速に処理できる。ただしトランザクションログを残さない。
インポート・ユーティリティーとロード・ユーティリティーの相違点
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/r0004639.html
リスト表示関連
テーブル一覧の確認
db2 list tables
SQLでも確認可能
SELECT * FROM SYSIBM.TABLES;
SELECT * FROM SYSIBM.TABLES WEHRE TABLE_SCHEMA = 'スキーマ名';
テーブルスペースの情報
db2 list tablespaces show detail
テーブル定義を確認
db2 DESCRIBE TABLE test_table