🐤

PostgreSQLのコマンド(\c, \lとか)を由来から覚える

2025/01/29に公開

PostgreSQL の psql 環境で使用するコマンド(メタコマンドと呼ばれます)は、ほとんどが \ で始まるショートカットです。これらのコマンドの由来と意味について解説します。


主なメタコマンドとその由来

1. \c - データベースの接続 (connect)

  • コマンド: \c [データベース名]
  • 意味: データベースに接続する。
  • 由来: connect の頭文字。
  • 使用例:
    \c mydatabase
    

2. \l - データベースの一覧 (list)

  • コマンド: \l
  • 意味: データベースの一覧を表示。
  • 由来: list の頭文字。
  • 使用例:
    \l
    

3. \dt - テーブルの一覧 (display tables)

  • コマンド: \dt
  • 意味: 現在のデータベース内のテーブルを一覧表示。
  • 由来: display tables の略。
  • 使用例:
    \dt
    

4. \du - ユーザーの一覧 (display users)

  • コマンド: \du
  • 意味: ユーザー(ロール)の一覧を表示。
  • 由来: display users の略。
  • 使用例:
    \du
    

5. \dn - スキーマの一覧 (display namespaces)

  • コマンド: \dn
  • 意味: スキーマの一覧を表示。
  • 由来: display namespaces の略で、PostgreSQL ではスキーマを「名前空間」として扱うことから。
  • 使用例:
    \dn
    

6. \d - オブジェクトの詳細 (describe)

  • コマンド: \d [テーブル名]
  • 意味: テーブルやビューなどの詳細情報を表示。
  • 由来: describe の頭文字。
  • 使用例:
    \d mytable
    

7. \q - psqlの終了 (quit)

  • コマンド: \q
  • 意味: psql を終了する。
  • 由来: quit の頭文字。
  • 使用例:
    \q
    

8. \i - SQLファイルの実行 (include)

  • コマンド: \i [ファイル名]
  • 意味: 外部のSQLファイルを実行する。
  • 由来: include の頭文字。
  • 使用例:
    \i myscript.sql
    

9. \timing - 実行時間の表示

  • コマンド: \timing
  • 意味: クエリの実行時間を表示するか切り替え。
  • 由来: timing からそのまま。
  • 使用例:
    \timing
    

10. \copy - CSVファイルの入出力 (copy)

  • コマンド: \copy [テーブル名] TO|FROM [ファイル名]
  • 意味: CSVやテキストファイルをデータベースとやり取りする。
  • 由来: copy からそのまま。
  • 使用例:
    \copy mytable TO 'output.csv' CSV HEADER
    

特殊なメタコマンド

\x - 拡張表示 (expanded display)

  • コマンド: \x
  • 意味: テーブルの出力形式を拡張表示に切り替える(縦方向に表示)。
  • 使用例:
    \x
    SELECT * FROM mytable;
    

\h - SQLコマンドのヘルプ (help)

  • コマンド: \h [SQLコマンド]
  • 意味: SQLコマンドの使い方を表示。
  • 使用例:
    \h SELECT
    

\? - メタコマンドのヘルプ

  • コマンド: \?
  • 意味: すべてのメタコマンドのヘルプを表示。
  • 使用例:
    \?
    

まとめ

PostgreSQL のメタコマンドは、直感的に理解しやすい単語の頭文字や略語 に基づいている。psql を効率的に使うために、これらのメタコマンドを覚えると非常に便利。

  • データベース接続: \c(connect)
  • 一覧表示: \l(list)、\dt(display tables)
  • 詳細表示: \d(describe)
  • 終了: \q(quit)
  • ファイル実行: \i(include)

Discussion