この記事の目的
タイトル通り個人的メモ。
仕事で毎度調べるのが億劫なので、一まとめにしたく書いてます。
目次
1.Db2コマンド
2.Sybaseコマンド
3.参考サイト
1. Db2コマンド
データベース接続状況を表示
db2 connect
オプション一覧を表示
db2 ? options
スキーマ名を設定する
db2 set schema スキーマ名
自動コミットオフ
デフォルトで自動コミットがオンなので、+cオプションをつけてあげることで安心。
db2 +c "SQL文"
db2 commit
テーブルの一覧表示
db2 "list tables"
全てのテーブルの一覧表示
db2 "list tables for all"
スキーマを指定してテーブルの一覧表示
db2 "list tables for スキーマ名"
テーブル定義を表示
db2 "describe table テーブル名"
スキーマを指定してテーブル定義を表示
db2 "describe table スキーマ名.テーブル名"
接続クライアント一覧
db2 "list applications"
1行目だけ表示
db2 "select * from テーブル名 fetch first 1 rows only"
5行目から10行目を表示
db2 "select * from テーブル名 offset 4 rows fetch first 6 rows only"
SQLファイルを実行
db2 -tvf ファイル名
-t セミコロンをステートメントの終了文字とする
-v 実行結果を標準出力に出す
-f ファイルを入力する
SQL実行結果をファイルに書き出す
ファイルタイプはDEL(カンマ区切りアスキー)とIXF(DB2バイナリ形式)の2種類がある。
db2 "export to ファイル名 of ファイルタイプ "select文"
ファイルからimport
insertが挿入、replaceが洗い替え。
db2 import from FILENAME of del [insert|replace] into TABLENAME
ファイルからload
loadはトランザクションログを残さないので、importよりも高速。
なおloadが失敗したテーブルはロードペンディング状態になりアクセスできなくなる。
db2 load from FILENAME of del [insert|replace] into TABLENAME nonrecoverable
2. Sybaseコマンド
クエリが返す行数を1行に制限
select top 1 * from テーブル名
もしくは
set rowcount 1
select * from テーブル名
set rowcount 0 (出力行数制限解除。)
コマンドを実行する
infileにselect文など実行したいコマンドを書く。
isql -Uuser -Ppassword -Sservername -iinfile
コマンド実行結果をファイルに書き出す
isql -Uuser -Ppassword -Sservername -iinfile -oOutfile
セパレータ文字を指定する
デフォルトはスペースがセパレータ。
カンマ「,」をセパレータにした場合を参考。
isql -Uuser -Ppassword -Sservername -s,
シェルコマンドを実行する
!!をつけることで、OSコマンドを実行できる。
isql -Uuser -Ppassword -Sservername
!!コマンド
ヘッダを表示する間隔を指定する。
3行ごと表示する場合を参考。
isql -Uuser -Ppassword -h 3
コマンドを複数回実行する
go 数値
SQLのパフォーマンス統計情報を出力する
isql -Uuser -Ppassword -Sservername -p
select * from テーブル名
go
3. 参考サイト
Sybase
Db2
所謂神ページというやつ。
ロックについて書いてある記事。今度読んでみよう😏😏😏