Windows で PostgreSQL 14.5,pgAdmin 4,PostGIS 3 のインストールを行う. そして,psql の基本機能を使ってみる.
【目次】
【サイト内の関連ページ】
【外部ページへのリンク】
Postgres のデータベース管理者は,データベースへのあらゆる操作を許されたユーザである.
パスワードは,単純に pgadmin100000 と書いているが,必ず,これとは違う適切なパスワードを設定すること)
動作チェック用のデータベースを作る. 好きな名前をつけていいが,以下,テスト用データベース名は,testdb のように書く.
サーバ・エンコーディングは UTF8 を使うことにする.
ダウンロード,インストール, PostgreSQL データベース(データベース名は testdb)の作成を行う. (インストール・プログラムがデータベースの作成を行う).
バージョン 14.5 を選んだとして説明を続ける
ダウンロードしたインストール・プログラムを起動して,インストールを行う.いくつかの設定を行う. 基本的にはデフォルトのままでいいです.
デフォルトのままで問題ない.「Next」をクリック.
デフォルトのままで問題ない。「Next」をクリック.
デフォルトのままで問題ない。「Next」をクリック.
確認し,デフォルトのままで問題ない場合は,「Next」をクリック.
「Japanese, Japan」を選び,「Next」をクリック.
「Next」をクリック.
「Next」をクリック.
「PostgreSQL 14 ... on port 5432」を選び, 「次へ」をクリック.
下の例では「pgJDBC v42.2.18-1」と「psqlODBC (64 bit) v13.00.0000-2」と「PostGIS 3.2 Bundle for Postgres 14 (64bit) v3.2.2」をチェックしている. 選択が終わったら,「次へ」をクリック.
既定(デフォルト)のままでよい.「次へ」をクリック.
「次へ」をクリック.
同意する場合のみ,続行する.
選択を終えたら,「Next」をクリック.
既定(デフォルト)のままでよい.「Next」をクリック.
「Close」をクリック.
「終了」をクリック.
システム環境変数 PATH に「C:\Program Files\PostgreSQL\14\bin」を追加することにより,パスを通す.
コマンドプロンプトを管理者として実行: 別ページ »で説明
call powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\Program Files\PostgreSQL\14\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
環境変数 CLASSPATH に, 「C:\Program Files (x86)\PostgreSQL\pgJDBC\postgresql-42.2.18.jar」 のように,ファイル名を追加する
ファイル名は,実際に,このディレクトリを見て確認すること.
【サイト内の関連ページ】
PostgreSQL の活用: 別ページ »にまとめ
「postgres」はPostgres データベース管理者のユーザ名
psql -U postgres
プロンプトが出るので, PostgreSQL データベース管理者 (postgres) のパスワード を入力する.
画面にパスワードが表示されないのは正常動作.
\c
postgres, template0, template1 の 3 つのデータベースが表示されることを確認.
\l
psql の種々の操作について: 別ページ »で説明
「postgres」はPostgres データベース管理者のユーザ名
psql -U postgres
プロンプトが出るので, PostgreSQL データベース管理者 (postgres) のパスワード を入力する.
画面にパスワードが表示されないのは正常動作.
create table order_records ( id integer primary key not null, year integer not null CHECK ( year > 2008 ), month integer not null CHECK ( month >= 1 AND month <= 12 ), day integer not null CHECK ( day >= 1 AND day <= 31 ), customer_name text not null, product_name text not null, unit_price real not null check ( unit_price > 0 ), qty integer not null default 1 check ( qty > 0 ), created_at timestamp with time zone not null, updated_at timestamp with time zone, check ( ( unit_price * qty ) < 200000 ) );
begin transaction; insert into order_records values( 1, 2022, 7, 26, 'kaneko', 'orange A', 1.2, 10, current_timestamp, NULL ); insert into order_records values( 2, 2022, 7, 26, 'miyamoto', 'Apple M', 2.5, 2, current_timestamp, NULL ); insert into order_records values( 3, 2022, 7, 27, 'kaneko', 'orange B', 1.2, 8, current_timestamp, NULL ); insert into order_records values( 4, 2022, 7, 28, 'miyamoto', 'Apple L', 3, 1, current_timestamp, NULL ); commit;
select * from order_records;
begin transaction; update order_records set unit_price = 11.2 where id = 1; commit; select * from order_records;
\d
\q