sql >> データベース >  >> RDS >> PostgreSQL

psqlを使用してPostgreSQLでデータベースとテーブルを一覧表示する方法

    Postgresデータベースの管理に関しては、SQL Workbench/JやpgAdminIIIなどのさまざまなサードパーティツールを利用できます。ただし、Postgres自体には、psqlと呼ばれる強力なコマンドラインツールがバンドルされています。 これは、ターミナルに精通している人や、スクリプト管理タスクを探している人に最適です。データベース管理者が実行する最も一般的なタスクの1つは、単に環境に慣れることです。これには、「このサーバーにはどのデータベースが存在するか」などの質問が含まれます。または「このサーバーの特定のデータベースに保存されているテーブルは何ですか?」このチュートリアルでは、psqlを使用してコマンドラインからこれらの重要な質問に答える方法を学習します。 。

    メタコマンド

    psqlを介して生のSQLクエリをサーバーに送信できることに加えて psqlを利用することもできます サーバーから情報を取得するためのメタコマンド。メタコマンドは、psqlによって評価されるコマンドです。 多くの場合、サーバー上のシステムテーブルに対して発行されるSQLに変換されるため、管理者は日常的なタスクを実行する時間を節約できます。それらは円記号で示され、その後にコマンドとその引数が続きます。以下にその例をいくつか示します。

    データベースの一覧表示

    単一のPostgresサーバープロセスで複数のデータベースを同時に管理できます。各データベースは、サーバーのデータディレクトリ内の独自のディレクトリに個別のファイルセットとして保存されます。サーバー上で定義されたすべてのデータベースを表示するには、\listを使用できます。 メタコマンドまたはそのショートカット\l

    postgres=# \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     sales     | ubuntu   | 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
    (4 rows)
    
    データベースの切り替え

    ほとんどのPostgresサーバーには、デフォルトで3つのデータベースが定義されています:template0template1 およびpostgrestemplate0 およびtemplate1 CREATE DATABASEで使用されている、または使用できるスケルトンデータベースです。 指図。 postgres は、他のデータベースを作成する前に接続するデフォルトのデータベースです。別のデータベースを作成したら、テーブルを作成してデータを挿入するために、そのデータベースに切り替える必要があります。多くの場合、複数のデータベースを管理するサーバーを使用する場合、データベース間を頻繁に移動する必要があります。これは、\connectを使用して実行できます メタコマンドまたはそのショートカット\c

    postgres=# \c sales
    You are now connected to database "sales" as user "ubuntu".
    sales=#
    
    テーブルの一覧表示

    データベースに接続したら、そこで作成されたテーブルを確認する必要があります。これは、\dtを使用して実行できます メタコマンド。ただし、テーブルがない場合は出力されません。

    sales=# \dt
    No relations found.
    sales=#
    

    テーブルを作成すると、作成されたテーブルの表形式のリストに返されます。

    sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
    CREATE TABLE
    sales=# \dt
            List of relations
     Schema | Name  | Type  | Owner
    --------+-------+-------+--------
     public | leads | table | ubuntu
    (1 row)
    
    sales=#
    

    1. トランザクション内のエラーを無視するようにPostgresqlに依頼できますか

    2. MariaDBで日付に年を追加する6つの方法

    3. 別のユーザーアカウント(macOS)からのmySQLインスタンスの回復

    4. OracleのCOALESCE()関数