psql の主要機能(Windows 上)

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

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

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

関連する外部ページ

1. 前準備

PostgreSQL のインストール

事前に決定する事項

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

また,一般ユーザのアカウントを作成するため,ユーザ名とパスワードを以下のとおり設定する.

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

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 <バージョン>」→「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';
    
    • encoding '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 postgres -l」コマンドでデータベース一覧を表示する.Windows 環境ではコマンドプロンプトから実行する.

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

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

SQL ファイルの実行

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

8. テーブルのインポートとエクスポート

テーブルデータの入出力には PostgreSQL の copy コマンドを使用する.