タイトル: テーブル一覧の確認
SEOタイトル: テーブル一覧を確認する SQL コマンド (SHOW TABLES)
| この記事の要点 |
|---|
|
本稿はDB2のテーブル一覧を確認する方法を説明します。スキーマ単位やオーナー単位でテーブルを一覧化したいときに使います。
1. list tables コマンドで確認
DBに接続し、対話モード(CLP)で以下のコマンドを実行します。
|
db2 => list tables |
これは現在の接続ユーザーが所有するテーブルのみを表示します。他のスキーマも見たい場合は次のように指定します。
2. 特定スキーマのテーブル一覧
|
db2 => list tables for schema SCHEMA |
3. 全ユーザーのテーブルを一覧
|
db2 => list tables for all |
4. SQLで取得する(SYSCAT.TABLES)
プログラム経由や、テーブル種別・作成日でフィルタしたい場合はシステムカタログを使います。
|
SELECT TABSCHEMA, TABNAME, TYPE, CREATE_TIME |
TYPE 列はテーブル種別を表します。
| TYPE | 意味 |
|---|---|
| T | 通常テーブル |
| V | ビュー |
| A | エイリアス |
| S | サマリーテーブル(MQT) |
| N | ニックネーム(フェデレーション) |
5. テーブル名で部分検索
|
SELECT TABSCHEMA, TABNAME |
関連コマンド
list tables: 自分のスキーマのテーブル一覧list tables for schema SCHEMA: 特定スキーマlist tables for all: 全ユーザーのテーブルdescribe table TABLE: テーブル定義の確認SYSCAT.TABLES: SQLでテーブル一覧を取得
注意点
- DB2はスキーマ名・テーブル名を大文字で保持する。
SYSCAT系SQLでは大文字で指定する list tablesのような CLP コマンドは、JDBC 経由では実行できない。アプリから取得したい場合はSYSCAT.TABLESを使うSYSCAT.TABLESにはシステムテーブルも含まれる。ユーザーテーブルだけ欲しい場合はTABSCHEMA NOT LIKE 'SYS%'を加える