DB2

IBMのデータベース V7.1



●コマンドプロンプトからSQLを実行する
db2cmd
を実行してコマンド行プロセッサを起動する

--上記の方法にて以下操作--
コマンドの先頭にdb2 をつける

※ スタートメニューからのコマンド行プロセッサでは
  コマンドの先頭にdb2はいらない


●コマンド行プロセッサとSQL*Plusとの違い
1.自動コミットがデフォルト
○解除方法(毎回解除する)
> update command options using c off

○確認方法
> db2 list command options


2.文の最後に";"は付けない


---------------------------------------------
●作成手順

1.データベース作成 ⇒ 2.バッファプール ⇒ 3.テーブルスペース作成 ⇒ 4.表作成

1.データベース作成
 db2cmdを開いてからCREATE DABASE 文を流す
2.テーブルスペース作成
 テーブルにコネクトしてからCREATE TABLESPACE 文を流す
3.表作成
 テーブルにコネクトしてからCREATE TABLESPACE 文を流す

---------------------------------------------


●インストールログファイル
OSがインストールされているディスク上
(例 C:\DB2LOG\db2.log)


●インスタンス
・サービス
 DB2-DB2(デフォルト)
 ※ DB2-DB2CTLSVはいらない

・サービス起動、停止
> db2 db2start
> db2 db2stop
コマンドから環境変数DB2INSTANCEに設定されている
インスタンスを起動、停止する


●データベース管理インスタンス(DAS)
・サービス
DB2-DB2DAS00(デフォルト)
> db2 db2start
> db2 db2stop

・機能
DASはデータベースを持たずマシン1台に対してDAS1つしか持たない。
Windows環境では自動的に作成される。
「コントールセンター」や「クライアント構成アシスタント」等の
GUIオペレーションを提供する



●環境変数
DB2INSTANCE変数...デフォルトでアクセスするインスタンス
  デフォルト:DB2

DB2DBDFT変数...デフォルトで接続するデータベース名


●インスタンス作成
> db2 db2icrt my_inst
  my_inst インスタンスを作成

●インスタンス確認
> db2 db2ilist


●db2接続
> db2 connect to ipofdb user ipof using ipof

データベース接続情報

データベース・サーバー = DB2/NT 7.2.5
SQL 権限 ID = IPOF
ローカル・データベース別名 = IPOFDB


●表スペース情報
> db2 list tablespaces [show detail]


●データベース情報
> db2 list database directory


●コンテナー情報
> db2 list tablespace containers for 表スペースID
 表スペースID...list tablespace で確認


●表スペースの作成(SMS表スペース)
> db2 create tablespace SERIGO_TS managed by system using ('D:\DB2\NODE0000\SERIGO_TS')

●データベース作成
> db2 create database DTSERIGO ON D: USING CODESET IBM-943 TERRITORY JP COLLATE USING IDENTITY

●表作成
> db2 create table MSTUSER { 列名1 データ型1, 列名2 データ型2,・・・} in serigo_ts


●表を確認
> db2 list tables for all


●表(カラム)を確認する
> db2 describe table IPOF.USRMSGMT

●カラムを追加する
ALTER TABLE IPOF.USERMST ADD COLUMN DATE_TEST DATE NOT NULL DEFAULT CURRENT DATE
ALTER TABLE IPOF.USERINFMST ADD COLUMN DATE_TEST DATE NOT NULL DEFAULT CURRENT DATE

●インデックスを確認
> db2 describe indexes for table 表名

●SQLファイルを実行
> db2 -tf xxxx.sql


●テーブルをコピーしたい
あるデータベース(SOURCE_DATABASE)から別のデータベース(TARGET_DATABASE)にテーブル(HOGEHOGE)をコピーするには、 次のコマンドを実行してやると便利。インポートでCREATEを指定してする場合、TARGET_DATABASEにはテーブル(HOGEHOGE)がないことが前提です。

CONNECT TO SOURCE_DATABASE;
EXPORT TO HOGEHOGE.IXF OF IXF MESSAGES HOGEHOGE.EXM SELECT * FROM HOGEHOGE;
CONNECT RESET;

※(HOGEHOGEがない場合)
CONNECT TO TARGET_DATABASE;
IMPORT FROM HOGEHOGE.IXF OF IXF MESSAGES HOGEHOGE.IMM CREATE INTO HOGEHOGE;
CONNECT RESET;

※(HOGEHOGEにデータがない場合)
CONNECT TO TARGET_DATABASE;
IMPORT FROM HOGEHOGE.IXF OF IXF MESSAGES HOGEHOGE.IMM INSERT INTO HOGEHOGE;
CONNECT RESET;



テーブル作成方法と設定値


HOME