psql は,PostgreSQL に関する各種操作を,簡単に行えるツール.
Ubuntu については,別ページ »で説明している.
【サイト内の主な PostgreSQL 関連ページ】
【関連する外部ページ】
このページでは,データベースの作成を行うので, 作成するデータベースのデータベース名と文字コード(エンコーディング)を決めておくこと. このページでは,次のように書く.
データベース名は,自由に決めてよいが,半角文字(つまり英字と英記号)を使い,スペースを含まないこと,
このページでは, データベース・一般ユーザのアカウントを作成するので, そのユーザ名とパスワードを決めておくこと.このページでは次のように書く.
※ 説明上,単純に hoge$#34hoge5 と書いているが,必ず,これとは違う適切なパスワードを設定すること)
データベース・一般ユーザのアカウント作成やデータベースの作成と権限の設定には, PostgreSQL データベース管理者のユーザ名とパスワードが必要になるので,前もって調べておくこと. このページでは,Postgres データベース管理者のユーザ名を pgadmin と書く.
「postgres」はPostgres データベース管理者のユーザ名
psql -U postgres
プロンプトが出るので, PostgreSQL データベース管理者 (postgres) のパスワード を入力する.
画面にパスワードが表示されないのは正常動作.
\c
postgres, template0, template1 の 3 つのデータベースが表示されることを確認.
\l
Windows のスタートメニューで, →「PostgreSQL 12」 →「SQL Shell (psql)」と 操作する.
その後,次のように回答する.
\c \du
アカウント(ユーザ名とパスワード)を作成するには, create user コマンドを使用する.
create user testuser with password 'hoge$#34hoge5' createdb;
アカウントを削除したいときは,psql で,「drop user testuser」のように操作する.
文字コード(エンコーディング)は,UTF8に設定
実行後,エラーメッセージが出ないことを確認
create database mydb encoding 'UTF8';
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 );
select * from commodity;
期待される結果.
TYPE NAME PRICE ---- ---------- ----- 1 apple 50 2 orange 20 3 strawberry 100 4 watermelon 150 5 melon 200 6 banana 100
以下は,動作画面.
データベースの一覧表示は,「psql -U pgadmin -l」で行う. Windows の場合は,コマンドプロンプトで実行.
psql の起動において,「-L <ファイル名>」を付ける.
psql の起動において,「-f <ファイル名>」を付ける.
テーブルのインポート,エクスポートには,PostgreSQL の copy コマンドを使う. Windows の場合には,2つ注意点がある.
copy WORK from E'd:\\KEN_ALL_UTF8.csv' with csv;
※ バックスラッシュを使いたいので,エスケープ文字列であることを意味する「E」を,文字列の前につける.
copy ZIP2 to E'C:\\Program Files\\PostgreSQL\\8.3\\data\\zip.csv' with CSV;
※ バックスラッシュを使いたいので,エスケープ文字列であることを意味する「E」を,文字列の前につける.
※ PostgreSQL の data ディレクトリ(PostgreSQL のインストールディレクトリの下))C:\\Program Files\\PostgreSQL\\8.3\\data\\ 以外を,copy コマンドの出力先として指定すると 「ERROR: could not open file ... for writing: Permission denied」というエラーが出て動かないので注意.