!!!DB2 [DB2 XML DB (pureXML)][DB2 SQL PL] *[DB2逆引きリファレンス|http://db2watch.com/wiki/index.php/DB2%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E7%9B%AE%E6%AC%A1] *DB2管理者必携 {{amazon 4774145971}} !!!Express-C !!インストール *[CentOSにExpress-C v9.7をインストール|http://typea.info/blg/glob/2011/05/db2-express-c.html] *[DB2 Express-C 9.7 を CentOS 6 にインストール再び|http://typea.info/blg/glob/2012/01/db2-express-c-97-centos-6.html] *[DB2 Express-C 11.1 をVagrant上のCentOs7にインストール|http://typea.info/blg/glob/2018/08/db2-express-c-111-vagrantcentos7.html] !グループとユーザーの作成 *https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_10.5.0/com.ibm.db2.luw.qb.server.doc/doc/t0006742.html *ユーザーおよびグループは、インストール・プロセス中に DB2 セットアップ・ウィザードによって作成されます。 希望する場合は、前もってそれらを作成することができます ,ユーザー,サンプル・ユーザー名,サンプル・グループ名 ,インスタンス所有者,db2inst1,db2iadm1 ,fenced ユーザー,db2fenc1,db2fsdm1 ,DB2 Administration Server のユーザー,dasusr1,dasadm1 *Linux オペレーティング・システムでグループを作成するには、以下のコマンドを入力します。 # groupadd -g 999 db2iadm1 # groupadd -g 998 db2fsdm1 # groupadd -g 997 dasadm1copy to clipboard *グループごとにユーザーを作成します。 # useradd -u 1004 -g db2iadm1 -m -d /home/db2inst1 db2inst1 # useradd -u 1003 -g db2fsdm1 -m -d /home/db2fenc1 db2fenc1 # useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1copy to clipboard *次のように、初期パスワードを設定します。 # passwd db2inst1 # passwd db2fenc1 # passwd dasusr1 !!!IBM Data Studio !![接続とSQLの発行|http://typea.info/blg/glob/2011/05/db2-ibm-data-studio-sql.html] *[接続とSQLの発行|http://typea.info/blg/glob/2011/05/db2-ibm-data-studio-sql.html] !!!CLP コマンドライン !!コマンドラインオプションの確認 *DB2 CLP コマンドラインオプション !!CLPでバックスペースが文字化け(Linux) *Linux バックスペースが文字化けしてしまう !!CLPコマンド *[[CLPコマンド|DB2 CLPコマンド]] !!!管理 !!権限 *http://www.geocities.jp/a1770053/jyoho/db2_512/chapter4.htm !権限付与 GRANT {権限} ON {テーブル名} TO {ユーザー名} !権限削除 REVOKE {権限} ON {テーブル名} FROM {ユーザー名} !オブジェクト権限確認 SELECT * FROM SYSCAT.TABAUTH WHERE GRANTEE = '{ユーザー名}' !!強制終了 db2stop force !!すべてのプロセスの停止 *http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.qb.server.doc/doc/t0024969.html?resultof=%22%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E5%81%9C%E6%AD%A2%22%20 !!接続しているアプリケーションを切断 db2 ==> FORCE APPLICATION ALL !!情報 !テーブル一覧取得 select tabschema,tabname,owner,tbspace from syscat.tables !!インスタンス !デフォルトインスタンスを確認と変更 ::確認 >db2 get instance ::変更 >set DB2INSTANCE=[インスタンス名] !!設定 !設定情報 *DB2 設定情報を得る !!トラブル !エラーコード *DB2 エラーコードの意味を調べる !!その他 *DB2 テーブル名カラム名を取得 !!!バックアップ *DB2 バックアップ履歴の確認 !!!SQL !!定義 !DB2 テーブル定義をコピーする !!更新 !DB2 別のテーブルの値で更新する ![[サブクエリで複数項目を更新する|DB2 別のテーブルの値で更新する]] !!削除 !DB2 重複業を削除 !!自動番号付 !DB2 ID列に自動採番 !!シーケンス !次の値を取得 select next value for {SEQUENCE_NAME} from sysibm.sysdummy1; !値のリセット alter sequence {SEQUENCE_NAME} restart with {NUMBER}; !!集合演算・結合 !DB2 UNIONした結果をSELECTする !DB2 グループ化したテーブルを結合する !DB2 外部結合時の検索条件 !DB2 共通の行を見つける !DB2 存在しない値を取得する !!制御 !DB2 CASE式とNULL !!日付 !DB2 日付操作 !DB2 月末を求める !DB2 n ヶ月後を求める !!書式・データ変換 !DB2 CHAR関数による書式変換 !DB2 文字列 数値変換 !DB2 データ有無をフラグに変換 !!ダミーテーブル !DB2 ダミーテーブル !!データ操作 !DB2 先頭の1件をFETCHせずに取得する !!集計 !DB2 GROUP BY 拡張 !DB2 結果に順位をふる !DB2 小計と合計と割合 !!関数 !DB2 関数 !!コメント *http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.admin.doc/doc/r0000901.htm *オブジェクトにコメントをつける COMMENT ON TABLE SETTINGS_MST IS '設定マスター' ; COMMENT ON SETTINGS_MST( "DIVIDE_CD" IS '区分コード', "COMMON_CD" IS '共通コード' ) ; !!再帰 !DB2 再帰 !DB2 再帰で区切りリストを作成 !!Oracle ![Oracle開発者のためのDB2 SQLリファレンス.pdf|http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/499721c3388537bd49256b1a001aab28/4925722f004efcee492570e3002bf8b0/$FILE/Oracle%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDB2%20SQL%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9.pdf] *{{ref ora_db2_ref.pdf}} !!!パフォーマンス !!DB2 EXPLAIN の実行 *DB2 EXPLAIN の実行 !!DB2 SELECTステートメント最適化 *DB2 SELECTステートメント最適化 !!DB2 索引スキャン *DB2 索引スキャン !!DB2 SQLアクセスパスのチューニング *DB2 SQLアクセスパスのチューニング !!DB2 マテリアライズ照会表の作成 *DB2 マテリアライズ照会表の作成 !!!ロック *DB2 ロッキングの問題 *DB2 ロック属性 *DB2 ロック・イベントのモニター *分離レベル (Isolation Level) !!!モニター *DB2 アクティビティ・モニターの利用 !!!制限 *[SQL と XML の制限|http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html] !!!データ移行 !エクスポート、インポート *DB2 エクスポート、インポートで文字化け *DB2 自動生成列のインポート !CSVとして出力 EXPORT TO "c:\work\test.csv" OF DEL SELECT * FROM TEST !!!XML DB (pureXML) !![[XML DB (pureXML)|DB2 XML DB (pureXML)]] !!![[SQL PL|DB2 SQL PL]] *[[SQL PL|DB2 SQL PL]] !!!Tips !!サンプルデータベースの作成 $ db2sampl -xml -sql Creating database "SAMPLE"... Connecting to database "SAMPLE"... Creating tables and data in schema "DB2INST1"... Creating tables with XML columns and XML data in schema "DB2INST1"... 'db2sampl' processing complete. !!CLPでバックスペースが文字化け(Linux) *Linux バックスペースが文字化けしてしまう !Data Studio 4.1.2 が起動しない org.osgi.framework.BundleException: モジュールの状態変更ロックを取得できませんでした:osgi.identity; osgi.identity="org.eclipse.core.runtime"; type="osgi.bundle"; version:Version="3.10.0.v20140318-2214"; singleton:="true" [id=1902] STARTED [STARTED] 以下を削除 *.eclipse\org.eclipse.platform_4.4.2_2131968962_win32_win32_x86_64\configuration\org.eclipse.osgi\.manager\.fileTalbeLock