3.

テーブル一覧を確認する SQL コマンド (SHOW TABLES)

編集
この記事の要点
  • DB2 でテーブル一覧を確認する方法
  • 自分のテーブル: db2 => list tables
  • 特定スキーマ: list tables for schema SCHEMA / 全件: list tables for all
  • 細かいフィルタは SYSCAT.TABLES を SELECT(TYPE = 'T' で通常テーブル)

 

本稿は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
FROM SYSCAT.TABLES
WHERE TABSCHEMA = 'SCHEMA'
  AND TYPE = 'T'
ORDER BY TABNAME;

TYPE 列はテーブル種別を表します。

TYPE意味
T通常テーブル
Vビュー
Aエイリアス
Sサマリーテーブル(MQT)
Nニックネーム(フェデレーション)

5. テーブル名で部分検索

SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE TABNAME LIKE 'USER%';

関連コマンド

  • 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%' を加える
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. DB接続コマンド
  2. データベース一覧の確認
  3. テーブル一覧の確認
  4. テーブル定義の確認
  5. DBの設定確認
  6. テーブルスペースの容量の確認および拡張
  7. データ型
  8. 複数カラムのUPDATE
  9. カラムの追加/削除/変更
  10. 自動番号付け (autoincrement) する方法
  11. インデックスの作成
  12. シーケンスおよびインクリメント(ID列)の違いと確認方法
  13. create table文の生成
  14. 特定スキーマの全テーブルの全カラム情報を取得する方法
  15. 【DB2】エラー一覧
  16. 【DB2】テーブル定義からCREATE TABLE文を生成する方法