はじめに
先日仕事でDocker上のDB2の中身をのぞいてスキーマを作ったり消したりする機会がありました。
初めての経験で色々調べながらやったので、備忘録がてら先週の自分へ送る気持ちでメモ。
DB2の基礎知識が数点書いてあるだけなのでDB2初めてレベルの人向けです。
環境
- OS : macOS Catalina version:10.15.5
- Docker : docker desktop for mac version:2.2.0.3
- Image : ibmcom/db2:11.5.0.0a (https://hub.docker.com/r/ibmcom/db2)
やったこと
testdb1というデータベースを作成済み前提です。
1. Dockerに入る
まずはいつものdocker exec -it
でdocker内部に入ります。
なお、db2inst1
が初期ユーザーです。
docker exec -it db2-115 bash -c 'su - db2inst1'
2. db2コマンドで接続する
他のDBMSでsqlplusだのpsqlだのは使ったことがあったのですが、db2ではどういうコマンドなのか知らず、少し調べました。
db2だとそのままdb2
コマンドでOKです。
その後connect to
コマンドで接続するDBを選択しましょう!←忘れがち!
[db2inst1@db2-115 ~]$ db2
db2 => connect to testdb1
Database Connection Information
Database server = DB2/LINUXX8664 11.5.0.0
SQL authorization ID = DB2INST1
Local database alias = TESTDB1
db2 =>
3. よく使ったコマンド(SQL)
特に使い方が分からず調べて使ったものについてメモします。
そのため、この時使ったコマンドでも一般的なSQLと同じもの(create table)などは記載しておりません。
スキーマ一覧表示
スキーマを作ったり削除したりしたので非常によく使いました。
SELECT SCHEMANAME,OWNER FROM SYSCAT.SCHEMATA
スキーマ削除
最後のrestrict
を忘れがちなので注意!
DROP SCHEMA スキーマ名 RESTRICT
テーブルの一覧表示
カレントスキーマ以外のスキーマのテーブル一覧を表示する場合はfor schema スキーマ名
が必要になります。
LIST TABLES (FOR SCHEMA スキーマ名)
参考
作業中は特にこちらのサイト様を参考にさせていただきました。非常にわかりやすくまとまっていて素晴らしいです。
DB2 操作コマンド - https://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=DB2+%C1%E0%BA%EE%A5%B3%A5%DE%A5%F3%A5%C9#p11