psql の主要機能(Windows 上)

psql は,PostgreSQL データベースの管理と操作を効率的に実行できるコマンドラインツールである.

Ubuntu での詳細については,別ページ »を参照.

サイト内の主な PostgreSQL 関連ページ

関連する外部ページ

1. 前準備

PostgreSQL のインストール

あらかじめ決めておく事項

このページでは,データベースを新規作成するため, データベース名と文字コード(エンコーディング)を事前に決定する必要がある. 本ページでは,以下の設定を使用する.

また,データベース・一般ユーザのアカウント作成するため, ユーザ名パスワードを以下のように設定する.

データベース・一般ユーザのアカウント作成およびデータベースの作成と権限の設定には, PostgreSQL データベース管理者認証情報必要となるため,事前に確認しておく. 本ページでは,PostgreSQL データベース管理者のユーザ名pgadmin として説明する.

2. psql の基本操作

3. psql の起動と終了

psql コマンド

  1. Windowsコマンドプロンプトを起動
  2. psql -U postgresを実行

    postgres」は PostgreSQL データベース管理者のユーザ名を指定

    psql -U postgres
    
  3. PostgreSQL データベース管理者のパスワード入力

    プロンプトが表示されたら, PostgreSQL データベース管理者 (postgres) のパスワードを入力する.

    セキュリティ上の理由により,パスワード入力時に画面上には表示されない

  4. 「\c」コマンドで,現在の PostgreSQL ロール名と接続中のデータベース名を確認.
    \c
    
  5. 「\l」コマンドで,データベース一覧を確認

    システムデータベースである postgres,template0,template1 の存在を確認.

    \l
    
  6. \q」コマンドで psql を終了

SQL Shell の利用

Windows のスタートメニューから, 「PostgreSQL 12」→「SQL Shell (psql)」を選択する.

接続設定では,以下の情報を入力する.

4. PostgreSQL での一般ユーザアカウント管理

ロール,デフォルトデータベース,現在のロール確認

  1. 「psql -U postgres」でログイン
  2. 次のコマンドでロール一覧と現在の接続状態を確認
    \c
    \du
    

アカウント作成

新規アカウントはcreate userコマンドで作成する.

  1. ユーザ名testuserのアカウントを作成する場合:
    create user testuser with password 'hoge$#34hoge5' createdb;
    
  2. 作成したアカウントで psql にログインし,動作確認を行う.

アカウントの削除

不要なアカウントは「drop user testuser」コマンドで削除できる.

5. データベースの作成

データベースの作成にはcreate databaseコマンドを使用する.
  1. mydbという名前のデータベースを作成する例:

    文字コード(エンコーディング)はUTF8を指定

    コマンド実行後,エラーメッセージが表示されないことを確認

    create database mydb encoding 'UTF8';
    
    • -E UTF8 : データベースの文字エンコーディング指定
    • mydb : 作成するデータベース名
 

6. SQL の実行とファイル出力

テーブル定義とデータ挿入

create table commodity (
    type integer primary key not null,
    name text not null,
    price integer);
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );

SQL クエリの実行

select * from commodity;

実行結果の例:

      TYPE NAME       PRICE
       ---- ---------- -----
          1 apple         50
          2 orange        20
          3 strawberry   100
          4 watermelon   150
          5 melon        200
          6 banana       100

実行画面:

7. psql のオプション機能

データベース一覧の表示

「psql -U pgadmin -l」コマンドでデータベース一覧を表示する. Windows 環境ではコマンドプロンプトから実行する.

SQL 実行結果のファイル出力

psql 起動時に「-L <出力ファイル名>」オプションを指定する.

SQL ファイルの実行

psql 起動時に「-f <入力ファイル名>」オプションを指定する.

テーブルのインポート,エクスポート

テーブルデータの入出力にはPostgreSQL の copy コマンドを使用する. Windows 環境では特に注意が必要