PostgreSQL 14.5,pgAdmin 4,PostGIS 3 のインストール,psql によるテーブル定義とレコード挿入(Windows 上)
Windows で PostgreSQL 14.5,pgAdmin 4,PostGIS 3 のインストールを行う. そして,psql の基本機能を使ってみる.
【目次】
【サイト内の関連ページ】
【関連する外部ページ】
- PostgreSQL Web ページ: http://www.postgresql.org/
- カーネル設定: http://www.postgresql.jp/document/13/html/kernel-resources.html
- インストール: http://www.postgresql.jp/document/13/html/installation.html
事前に決めておく事項
- Postgres データベース管理者のユーザ名とパスワード
Postgres のデータベース管理者は,データベースへのあらゆる操作を許されたユーザである.
- Postgres のデータベース管理者のユーザ名: postgres
- postgres のパスワード: pgadmin100000
パスワードは,単純に pgadmin100000 と書いているが,必ず,これとは違う適切なパスワードを設定すること)
- テスト用データベース名: testdb
動作チェック用のデータベースを作る. 好きな名前をつけていいが,以下,テスト用データベース名は,testdb のように書く.
- 初期化するデータベースクラスタのサーバ・エンコーディングと,クライアント・エンコーディングとロケール
サーバ・エンコーディングは UTF8 を使うことにする.
- サーバ・エンコーディング: UTF8
- クライアント・エンコーディング: SJIS
- ロケール: Japanese, Japan
PostgreSQL 14.5,pgAdmin 4,PostGIS 3 のインストール(Windows 上)
ダウンロード,インストール, PostgreSQL データベース(データベース名は testdb)の作成を行う. (インストール・プログラムがデータベースの作成を行う).
ダウンロード
- PostgreSQL ダウンロード Web ページを開く
- 「Windows」を選ぶ
- 「Download the installer」をクリック
- バージョンを選ぶ
- ダウンロードが始まる
バージョン 14.5 を選んだとして説明を続ける
インストールと設定
ダウンロードしたインストール・プログラムを起動して,インストールを行う.いくつかの設定を行う. 基本的にはデフォルトのままでいいです.
- ダウンロードしたファイルを実行
- インストールの開始.「Next」をクリック.
- インストールディレクトリの設定
デフォルトのままで問題ない.「Next」をクリック.
- コンポーネントの選択
デフォルトのままで問題ない。「Next」をクリック.
- データディレクトリの設定
デフォルトのままで問題ない。「Next」をクリック.
- Postgres データベース管理者のパスワードの設定
- パスワード
- パスワードの確認
- ポート番号の設定
確認し,デフォルトのままで問題ない場合は,「Next」をクリック.
- ロケールの設定
「Japanese, Japan」を選び,「Next」をクリック.
- 設定内容の確認
「Next」をクリック.
- インストールの開始
「Next」をクリック.
- インストールが始まる
- インストールの完了.「Finish」をクリック.
- 「スタックビルダ」が自動的に起動する.
「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」をチェックしている. 選択が終わったら,「次へ」をクリック.
- ダウンロードディレクトリの設定.
既定(デフォルト)のままでよい.「次へ」をクリック.
- スタックビルダによるインストールの開始
- ダウンロード終了の確認
「次へ」をクリック.
- JDBC をインストールするときは,JDBC のセットアップウイザードが始まる
- psqlODBC をインストールするときは,psqlODBC のセットアップウイザードが始まる
- PostGIS をインストールする場合は,次のように操作する.
- ライセンス条項の確認
同意する場合のみ,続行する.
- コンポーネントの選択
選択を終えたら,「Next」をクリック.
- インストールディレクトリの設定
既定(デフォルト)のままでよい.「Next」をクリック.
- 次のような表示が出た場合には,「はい」をクリック.
- 次のような表示が出た場合には,「はい」をクリック.
- 次のような表示が出た場合には,「はい」をクリック.
- 次のような表示が出た場合には,「はい」をクリック.
- インストール終了の確認
「Close」をクリック.
- ライセンス条項の確認
- インストール終了の確認
「終了」をクリック.
- 環境変数 PATH の設定
システム環境変数 PATH に「C:\Program Files\PostgreSQL\14\bin」を追加することにより,パスを通す.
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\Program Files\PostgreSQL\14\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
- 環境変数 CLASSPATH の設定
環境変数 CLASSPATH に, 「C:\Program Files (x86)\PostgreSQL\pgJDBC\postgresql-42.2.18.jar」 のように,ファイル名を追加する
ファイル名は,実際に,このディレクトリを見て確認すること.
【サイト内の関連ページ】
PostgreSQL の活用: 別ページ »にまとめ
psql を使ってみる
- Windows のコマンドプロンプトの起動
- psql -U postgresの実行
「postgres」はPostgres データベース管理者のユーザ名
psql -U postgres
- Postgres データベース管理者のパスワード
プロンプトが出るので, PostgreSQL データベース管理者 (postgres) のパスワード を入力する.
画面にパスワードが表示されないのは正常動作.
- 「\c」により,使用されている PostgreSQL のロール名と,オープンされているデータベース名を確認.
\c
- 「\l」 により,データベースの確認
postgres, template0, template1 の 3 つのデータベースが表示されることを確認.
\l
- 「\q」で psql を終了する
psql の基本操作
psql の種々の操作について: 別ページ »で説明
- psql --version: psql バージョン確認:
- psql: psql 起動
- \copy: テーブルのコピー
- \d, \d+: テーブル等の情報の表示
- \db, \db+: テーブル空間の表示
- \c: データベースへの接続、現在接続しているデータベースとユーザの確認
- \l: データベースの情報の表示
- \q: 終了
テーブル定義とレコード挿入
- Windows のコマンドプロンプトの起動
- psql -U postgresの実行
「postgres」はPostgres データベース管理者のユーザ名
psql -U postgres
- Postgres データベース管理者のパスワード
プロンプトが出るので, PostgreSQL データベース管理者 (postgres) のパスワード を入力する.
画面にパスワードが表示されないのは正常動作.
- SQL を用いたテーブル定義
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 ) );
- SQL を用いたレコード挿入
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
- psql の終了
\q