はじめに
結論から言うと、psqlですべてのデータベースを一覧表示するには \l または \list を使います。ただし、これで表示されるのは各データベースの最も基本的な情報だけです。より詳しい情報が必要な場合は、この先をお読みください。
ステップ1: ‘psql’にアクセスできることを確認する
まず、PostgreSQLのコマンドラインユーティリティである psql にアクセスできることを確認します。psql を起動するには、ターミナルを開いて次のように入力します:
psql -U username -d dbname
username をPostgreSQLのロールのユーザー名に、dbname をそのユーザーがアクセスできる任意のデータベースに置き換えてください。初期設定のためにデフォルトのPostgreSQLデータベースにアクセスする場合は、dbnameとして postgres を使用できます。
ステップ2: データベースを一覧表示する
psqlのインターフェースに入れば、すべてのデータベースを一覧表示するのは簡単です。次のコマンドを使います:
\l
または
\list
これらのコマンドは、すべてのデータベースの一覧を、所有者、エンコーディング、照合順序の設定、アクセス権限とともに表示します。出力例は次のとおりです:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
mydb | dbuser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
出力の見方
- Name: データベースの名前。
- Owner: データベースを所有するロール。
- Encoding: データベースで使用される文字エンコーディング方式。
- Collate: 照合順序(文字列の並べ替え方法)。
- Ctype: 文字の分類(例: 英字、数字)。
- Access privileges: カスタムのアクセス権限(ある場合)。
‘+’を付けて詳細情報を取得する
psqlでは、他のコマンドと組み合わせて + を使うことで、コマンドの出力を拡張表示できます。より詳しい情報が欲しい場合や、デフォルトの出力が簡潔すぎたり切り詰められていたりする場合に特に便利です。
一覧表示の際に \l+ を実行すると、各データベースの追加情報を確認できます
このコマンドでは、各データベースについて次のような追加情報が表示されます:
- Size: データベースが使用している物理ディスク容量。
- Description: データベースに追加されたコメント。
‘\du’でロールと権限を一覧表示する
\du コマンドは、PostgreSQLデータベースのロールの一覧を、関連する権限とともに表示します。
出力には次のような列が含まれます:
- Role name
- Attributes: ログイン権限、スーパーユーザーかどうか、ロールの継承などのグローバル属性の一覧。
- Member of: このロールが所属している他のロール。
‘\db’でテーブルスペース情報を一覧表示する
\db コマンドは、PostgreSQLデータベースがファイルを保存する場所であるテーブルスペースの情報を表示します。
各テーブルスペースについて、次のような詳細が表示されます:
- Name: テーブルスペースの名前。
- Owner: テーブルスペースを所有するPostgreSQLのロール。
- Location: ディスク上のテーブルスペースのディレクトリパス。
- Size: テーブルスペースのサイズ。
‘pg_catalog.pg_database’からデータベースの詳細情報を取得する
PostgreSQLは、すべてのデータベースに関するメタデータをシステムカタログ pg_catalog.pg_database に保存しています。このカタログをクエリすると、データベースに関する包括的な情報を取得できます。
SQLクエリの例
データベースの詳細情報を取得するには:
SELECT datname AS database_name,
pg_size_pretty(pg_database_size(datname)) AS size,
datallowconn AS allow_connections,
datconnlimit AS connection_limit,
encoding,
datcollate,
datctype
FROM pg_catalog.pg_database;
出力の見方
- database_name: データベースの名前。
- size: 人が読みやすい形式のデータベースサイズ。
- allow_connections: データベースへの接続が許可されているかどうか(trueまたはfalse)。
- connection_limit: 許可される同時接続の最大数(-1は無制限)。
- encoding: データベースの数値のエンコーディングID。
- datcollate: データベースの照合順序の設定。
- datctype: データベースの文字種別の設定。
このクエリで、データベースの構成や設定を把握できます。
Beekeeper Studioならクリックするだけ
Beekeeper Studioでは、画面上部のドロップダウンにすべてのデータベースが表示され、いつでもデータベースを切り替えられます。

まとめ
まとめると、psqlですべてのデータベースを一覧表示するには \l を使います。より詳しい情報を得るには、このチュートリアルで紹介した他のコマンドを使ってください。
Beekeeper Studioは無料のオープンソースのデータベースGUIです
これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。
Beekeeper Studio利用者の声
「Beekeeper Studioで以前のSQLワークフローを完全に置き換えました。高速で直感的で、データベース作業がまた楽しくなりました。」
「多くのデータベースGUIを試してきましたが、Beekeeperは機能とシンプルさのバランスが絶妙です。とにかくちゃんと動きます。」