WindowsへPostgreSQL11のインストール

PostgreSQL11のインストール手順を解説します。

 

 

ダウンロードURL

・次のURLをクリックしてダウンロードサイトを開きます。

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

 

 

・今回はバージョン11.5で解説します。

※ 写真は2019/8/17時点のものです。最新版は11.5ではないかもしれませんが、

一番バージョンが新しいもの(数値の大きいもの)をダウンロードしてください。

※ 上の画面はGoogle Chromeでの ダウンロードが完了した画面です。

矢印の箇所をダブルクリックするとインストーラーが起動します。

警告画面が出た場合は、「はい」を押して次へすすんで下さい。

 

 

・インストーラーの起動画面です。「Next」をクリック

 

 

・そのままで構いません。「Next」をクリック

 

 

・そのままで構いません。「Next」をクリック

 

 

・そのままで構いません。「Next」をクリック

 

 

・ポスグレを使うためのパスワード入力します。

同じパスワードを①の2か所に入力し「Next」をクリック

 

 

・そのままで構いません。「Next」をクリック

 

 

・①の箇所をクリック

 

 

・「Japanese , Japan」を選択し、「Next」をクリック

 

 

・「Next」をクリック

 

 

・「Next」をクリック

 

 

・インストールが始まるので待ちます。

 

 

・「Finish」をクリック

 

 

・スタックビルダの画面が表示されたら、「キャンセル」をクリックします

 

 

・「スタックビルダのウィザードを閉じますか?」で「はい」をクリックし終了です。

 

 

他のバージョンをインストール

PostgreSQL13のインストール

PostgreSQL12のインストール

インストールせずにPostgreSQLを使用する(ポータブル版)

 

概要

ここでは、2021年最新バージョン(PostgreSQL13)のインストール手順を説明します。

 

 

※ 以前のバージョンのインストール、インストールしないで使うには以下のリンクを参照して下さい。

PostgreSQL12のインストール

PostgreSQL11のインストール

【会社のPCなど】インストールせずにPostgreSQLを使用する(ポータブル版)

 

 

ダウンロード

1.次のURLをクリックしてダウンロードサイトを開きます。

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

 

 

2.Version13.Xの行で、「Windows x86-64」の「Download」を押します。

画面は13.1ですが、それよりも大きい数値の方があればそちらをクリックします。

(番号が大きいほうが最新バージョンです。)

 

 

3.画面が移動するので、そのまま待つとダウンロードが始まります。

※保存先はデスクトップ等、どこでも大丈夫です。

 

 

4.ダウンロードが完了したら次のインストールへ進みます。

 

 

インストール

1.ダウンロードしたインストーラーを右クリック、「管理者として実行」します。

 

 

2.インストーラーが起動しますので、「Next」をクリック

 

 

3.インストール先のを指定する画面です。そのままで構いません。「Next」をクリック

 

 

4.そのままで構いません。「Next」をクリック

 

 

5.データの保存先を指定する画面です。そのままで構いません。「Next」をクリック

 

 

6.PostgreSQLを使うためのパスワードを入力します。

(パスワードは好きな文字で構いませんが忘れないように注意してください。)

同じパスワードを①の上下2か所に入力し②「Next」をクリック

 

 

7.ポスグレのポートを指定する画面です。そのままで構いません。「Next」をクリック

(PostgreSQLのポート番号は初期値では「5432」です。)

複数のバージョンをインストールする場合、同じポート番号は使えません。

そういう時は「5433」、「5434」など重複しない番号にします。

 

 

8.そのままで構いません。「Next」をクリック

 

 

9.「Next」をクリック

 

 

10.インストールがされます(数分かかります)。終わったら「Next」をクリック

 

 

11.①のチェックをはずし、②「Finish」をクリック

 

 

12.以上でインストールが完了です。

 

 

インストールの確認

インストールされたかは「すべてのプログラム」で、

PostgreSQL13があるか確認し、あったら無事成功です。

 

 

インストールが無事完了したら、次はPostgreSQLへの接続をしてみましょう。

 

データを削除する2つの方法

PostgreSQLでのテーブルにデータを削除するには、以下の方法が主にあります。

1.pgAdminで手作業でデータを削除する

2.DELETE文を使用してデータを削除する

 

の作業は、画面で削除するため確認しながら徐々に削除することに向いています。

2の場合、構文を覚える必要がありますが、大量・高速にデータの削除ができます。

このページではそれぞれについて説明します。

 

 

1. pgAdminで手作業でデータを削除する

pgAdminでデータを削除する方法について手順を説明します。

 

1-1.①テーブルを右クリック、②「データの閲覧/編集」から「すべての行」を選択します。

すでに大量のデータが登録されている場合、「最初の100行」でも構いません。

 

1-2.データが表示される画面が開くので、①消したい行を選択し、

②ごみ箱のアイコンを押します

 

1-3.①ごみ箱アイコンを押すと、その行に取り消し線が引かれた状態になります。

②データ保存のボタンを押します。

 

1-4.問題なく削除(=保存)できたらメッセージが表示されます。

 

 

2-1. DELETE文を使用してデータを削除する(構文)

DELETE文とはテーブルデータを削除することができるSQLです。

 

・ 基本的なDELETE文の形

DELETE文は基本的には次のような形になります。

-- 基本的なDELETE文の形
DELETE FROM テーブル名 WHERE 条件文;

-- 例
delete from department; --条件を入れなければすべてのデータを削除する
delete from department where department_code = 'c';
delete from department where department_code in('a','c','e');

 

 

2-2. DELETE文を使用してデータを削除する(実行の仕方)

上で紹介した例文は、pgAdminのクエリツールより実行ができます。

 

1. pgAdminを開きクエリツールを起動します。

pgAdminを開き、次のように①データベースを選択した状態で、②クエリツールを開きます。

 

2. pgAdminを開きクエリツールを起動します。

①の箇所にDELETE文を記述し、②実行ボタンを押します。

 

3. クエリ実行成功のメッセージが表示されることを確認

成功のメッセージが表示されれば無事に登録ができました。

 

 

 

 

データを取得する方法

PostgreSQLでテーブルのデータを取得するには、以下の方法が主にあります。

1.SELECT文を使用して取得する

2.pgAdminで取得する方法

 

どちらもデータを取得できる点は変わりませんが、1についてはSELECT文を覚えることで、

PostgreSQLでなく他のデータベース等にも活用できます。(情報処理の試験等にも)

このページでは、それぞれの方法について説明します。

 

 

1.SELECT文を使用して取得する(構文)

・ 基本的なSELECT文

SELECT文とはテーブルのデータを取得するSQLです。

SELECT文を実行することによってテーブルのデータを取得できます。

(ちなみにselectやfromは大文字、小文字はどちらでも構わないです。)

-- 基本的な形のSELECT文
select 列名1 , 列名2 , ・・・ from テーブル名;

-- 列名をアスタリスク「*」にすると、すべての列を取得する
select * from テーブル名;

-- 例
select department_code , department_name from department;
select * from department;

 

・ 取得後の列名は変更できる

列名の後にASをつけることで、取得後の列名を変更することができます。

-- as句で列名を変更することができる
select 列名1 as 変更後の列名1 , 列名2 as 変更後の列名2 from テーブル名;

-- 例
select department_code as "部署コード" , department_name as "部署名" 
from department;

 

・ 取得するデータの抽出条件を設定できる

fromの後にwhereで抽出条件を指定できます。

-- where句で抽出条件を指定できる
select 列名1 , 列名2 from テーブル名 where 抽出条件文;

-- 例
select department_code , department_name from department 
where department_code = 'b';

 

 

1.SELECT文を使用して取得する(実行の仕方)

上で紹介した例文は、pgAdminのクエリツールより実行します。

 

1. pgAdminを開きクエリツールを起動します。

pgAdminを開き、次のように①データベースを選択した状態で、②クエリツールを開きます。

 

2. SELECT文を実行すると結果が表示されます。

①の箇所にSELECT文を記述(または貼り付け)し、②実行ボタンを押します。

③の箇所に結果が表示されます。(②の実行ボタンはF5ボタンでも実行できます。)

 

 

2.pgAdminの操作

テーブルを右クリックし、「データの閲覧/編集」から、次のいずれかを選択すると表示されます。

※ データ量がそれほど多くない、よくわからない場合はすべての行か、最初の100行でよいです。

 

・すべての行を選択 ・・・ すべての行を取得し表示する

・最初の100行   ・・・ 列〇〇を昇順に並べ、100行取得し表示する

・最後の100行   ・・・ 列〇〇を降順に並べ、100行取得し表示する

・フィルタリングした行 ・・・ 最初に条件を入力し、その条件で取得したデータを表示する

すべての行を表示する場合

 

「フィルタリングした行」の入力の仕方

・ フィルタリングした行の入力の仕方

「フィルタリングした行」は、SELECT文でのWHERE句に書く内容を記載します。

「WHERE」と最後の「;」はなしでOKです。

 

入力例:departmet_codeで抽出する例

 

 

出力結果

 

 

テーブルを作成する方法(pgAdminで作成する)

ここではテーブルを作成する方法のうち、pgAdminを使って作成する手順を紹介します。

pgAdminを使うとSQLがわからなくても、画面操作でテーブルが作成できるメリットがあります。

SQL(CREATE文)はこちらで説明しています。

 

 

テーブル作成の手順

それでは、テーブル作成の手順を説明します。

(作成するテーブルは、CREATE文の時に作成したテーブルにしました)

 

1.①pgAdminの左にあるテーブルを右クリックし、②作成>テーブルを押します。

 

 

2.名称のところにテーブル名を入力します

 

 

3.次に作成する列を設定します。

①列タブを表示、②+ボタンを押し、③の箇所に作成する列を設定します。

(department_codeは主キーにする予定なので、NOT NULLをYESにしています。)

 

 

4.次に主キーを設定します。

①制約タブから、②の+ボタン、③で名称の箇所に主キー名を入れます。

④の編集ボタンを押します。

 

 

5.主キーに設定する列を指定し、右下の「保存」ボタンを押します。

 

 

6.作成されたことが確認できると思います

 

pgAdminでの作成手順は以上です。

 

 

テーブルを作成する

テーブルを作成するには主に次の2つの方法があります。

① pgAdminを使い、画面から作成する

② CREATE TABLE文を実行し作成する

 

①の方法は、画面操作のみで簡単にできる反面、

PostgreSQL特有の操作になるため、汎用性があまりないというデメリットがあります。

 

②に関しては、CREATE文という構文を覚えれば

PostgreSQLだけでなく、他のデータベースでも使用可能なため汎用性があります

また、慣れてしまえば画面操作よりもかなり早くテーブルの作成が可能です。

 

そのためここからテーブル作成についての説明を

1.CREATE文での作成方法(この記事)

2.CREATE文の構文の説明

3.pgAdminを使ってテーブルを作成する

の順に進んでいこうと思います。

 

 

CREATE文を実行してみる

さていきなりですが、1つテーブルを作成してみたいと思います。

次の文は、部署を登録するテーブル(部署マスタ)を作成するCREATE文です。

 

1. CREATE文をコピーする

下の文をコピーしましょう。

黒ところのどこかにマウスのフォーカスをあわせると、右上に「Copy」と表示されるので、

そのCopyボタンをクリックするとコピーされた状態になります。

-- 部署マスタ(department)を作成するCREATE文
CREATE TABLE department
(
    department_code character varying(10) NOT NULL,         -- 部署コード
	department_name character varying(100),                 -- 部署名
    CONSTRAINT pk_department PRIMARY KEY (department_code)  -- 主キー
);

 

2. pgAdminを開きクエリツールを起動します。

pgAdminを開き、次のように①データベースを選択した状態で、②クエリツールを開きます。

 

3. pgAdminを開きクエリツールを起動します。

①の箇所に貼り付けをし、②実行ボタンを押します。

 

4. クエリの成功メッセージが表示されることを確認します。

万が一エラーになった場合、そのまま貼り付けがうまくいっていない場合が考えられます。

下の画面のように貼り付けができているか再度確認してください。

 

5. テーブルの一覧に表示されたことを確認する

左のリストを展開(スキーマ>public>テーブルと展開する)に

「department」が作成されたことを確認します。

 

 

テーブルのSQLを確認する

①テーブルを選択した状態で、②SQLのタブを開くと、

そのテーブルを作るためのCREATE文をみることができます。

 

テーブルが作成出来たら、続いてはこちらを参照して下さい。

> CREATE文の構文の説明

> pgAdminを使ってテーブルを作成する

> テーブルへデータを登録する

 

 

pgAdminとは

pgAdminとは、PostgreSQLのデータベース操作を画面でできるツールです。

 

これを使わなくても、psqlというツールでも同じことができますが、

コマンドを入力する必要があるので若干難易度があがります。

そのためここでは操作が簡単なpgAdmin4について1から説明します。

 

pgsqlで操作する場合の画面

 

 

pgAdminの起動方法

pgAdminの起動方法です。

プログラム一覧のPostgreSQLと同じところにありますので、クリックして起動します。

(画面はWindows10の画面です。)

 

 

マスタパスワードの設定

pgAdmin4を起動させると「Set Master Password」のメッセージが表示されます。これはpgAdminを使用するためのパスワードを設定してと言っているので、好きなパスワードを入力をし「OK」ボタンを押します。ちなみにPostgreSQLのインストール時にもパスワードを入力したと思いますが、別扱いのものなので注意して下さい。(同じパスワードを設定することも可能です)

 

 

pgAdminの画面構成

pgAdmin4を起動した画面です。pgAdmin4はブラウザ上で動きます。

ブラウザ上で動作するため、普通に戻るボタンなどが使えてしまうので注意して下さい。

 

 

①の箇所は、メニュー部分です。

この中では、「ファイル > 設定」か「ツール > クエリツール」の2つだけ覚えておきましょう。

 

 

ファイル > 設定から日本語化をすることが可能です。

pgAdminを日本語にする方法はこちらの記事を参考にして下さい。

あわせて読みたい

https://postgresweb.com/post-192

 

 

 

②の箇所は、PostgreSQLのバージョンとデータベース等が表示される箇所です。

PostgreSQLは複数のバージョンをインストールすることができますが、

その場合、②の左上のように「PostgreSQL 12」「PostgreSQL 13」と表示されます。

そしてそのPostgreSQL13の下の階層として、データベース、テーブルなどが表示されます。

 

 

テーブルなどは、データベースの中にあるスキーマ > テーブルで確認することができます。

下の例ではデータベース「testdb」のテーブルを表示しています。

 

 

③の箇所は、左で選択した中身の詳細を表示する箇所です。

左で選択したものの中身等が表示される領域です。

③の上部はタブになっており、画面を切り替えることができます。

 

下の画面の例では、左側が「testdb」が選択、右側の上部で「SQL」が選択されているため

「testdb」の「SQL」が表示されています。

 

 

以上が画面構成の説明です。

続いてデータベースを作成してみましょう。手順はこちら。

 

 

pgAdminの終了方法

終了する方法は、ブラウザの「×」ボタン、またはタブの「×」ボタンでOKです。

終了する時にメッセージが表示される場合がありますが、そのまま終了で構いません。

※ Google Chromeの場合、「このサイトを離れますか?」というメッセージが表示されますが

「このページを離れる」をクリックで終了します。

 

シーケンス(データ型のserial)とは

シーケンスとはINSERTで値を入れなくとも、自動で採番される列で、CREATE SEQUENCE文で作成することができます。またテーブル作成時、データ型に「serial」を指定した場合も同じくシーケンスとなります。シーケンスは自動で1から採番され、+1ずつされます。また範囲は、1~2,147,483,647の間になります。尚、作成したシーケンスは、pgAdminの「シーケンス」で確認できます。

 

 

シーケンスを作成(CREATE SEQUENCE)

CREATE文での列定義は次のように使います。

-- シーケンスの作成
CREATE SEQUENCE seq_name;

-- シーケンスの作成(初期値を設定する場合)
CREATE SEQUENCE seq_name START 1;

 

 

CREATE TABLEでのシーケンス作成

シーケンスはCREATE TABLEする時に作成することもでき、列定義に「serial」を指定すると、シーケンスとなります。また、シーケンス名は自動で命名されます。

-- CREATE TABLE時にシーケンス列を作成する
CREATE TABLE テーブル名
(・・・
seq serial,  -- 列定義をserialにするとシーケンスとなる
・・・)

-- すでにあるテーブルにシーケンス列を追加する
-- シーケンス名は''で囲むため注意
alter table テーブル名 add column 列名 integer NOT NULL DEFAULT nextval('シーケンス名');
alter table test add column testcol integer NOT NULL DEFAULT nextval('seq_name')

 

テーブル作成後、SQL文を確認するとシーケンス名が確認できます。

 

 

シーケンス値を設定する

シーケンス値は、次のSELECT文を実行することで値を設定できます。

設定後はその値から再度カウントアップを始めます。

-- シーケンス「seq_name」を1に設定
-- "1"を変更すればその値から再度カウントアップします
select SETVAL('seq_name', 1 , false);

-- 3つ目の引数(true / false)の違い 
SELECT setval('seq_name', 1000, true);   --シーケンスは1001からカウントアップ
SELECT setval('seq_name', 1000, false);  --シーケンスは1000からカウントアップ 

 

 

 

シーケンス値の値を確認

シーケンス値をSELECT文すると、現在の値等を取得できます。last_valueの値が現在値です。

-- シーケンス「seq_name」の値を確認する
select * from seq_name; 

 

 

動作確認

実際の動きを確認してみます。

① CREATE文でテーブルを作成します

CREATE TABLE test
(
	seq serial NOT NULL,  -- serial列
	hoge character(10),
	CONSTRAINT pk_test PRIMARY KEY (seq)
);

 

 

② INSERT文でデータを登録する

serial列に値を設定しないデータ登録を実行します。

 

③ SELECT文で登録データを確認する

SELECT文を実行し、serial列の値を確認する。

serial列にデータが登録されていることが確認できました。

psqlの起動画面

まずpsqlが起動した画面から説明します。

下の画面がpsqlが起動した画面ですが、この状態でSQLが入力できる状態になっています。

 

 

コマンドプロンプトでpsqlを実行する

手順は簡単です。

 

①コマンドプロンプトを開く

WINDOWボタン(キーボード左下のWINDOWSマークのボタン)を押しながらキーボードのR

⇒ 名前の所にCMDと入力し、OKボタンを押すと起動します。

 

 

②コマンドを入力

コマンド「psql -U ユーザー名 -d データベース名」を入力します。間には半角スペースを入れます。

# psql -h 接続先 -p ポート番号 -U ユーザー名 -d データベース名 を入力
psql -h localhost -p 5432 -U postgres -d dbname

ユーザー名はポスグレのユーザー名です(postgresなど)。

ポート番号はデフォルトで「5432」です。

データベース名は自身で作成したデータベースの名前です。

 

 

③パスワードを入力

「ユーザ XXXのパスワード:」と表示されたらパスワードを入力します。

パスワードはインストール時に設定したものです。忘れた場合はこちら

 

上で紹介した画面のように「データベース名=#」となれば起動が完了です。

 

 

'psql' は、内部コマンドまたは外部コマンド・・・のメッセージが表示される時

このエラーメッセージについてはこちらでまとめていますので参考にして下さい。

 

テーブルを作成する(CREATE TABLE文)

ここでは、テーブルを作成するための構文(CREATE TABLE文)について

説明をしていきたいと思います。

 

※ 「NOT NULLとは?」、「主キーとは?」まで説明をしようと思いましたが、

すでにいろんなサイトで説明されているので、ここでは主に構文の書き方をメインに紹介します。

 

CREATE TABLEの構文

基本的なCREATE TABLEの形は次のようになります。

※ ちなみに「--」マイナスを二つつなげて書くと、コメント扱いになります。

-- テーブルを作成するCREATE文(この行はコメント行)
CREATE TABLE テーブル名
(
    1つ目の列名 型 NOT NULL, -- カンマでつなげて書いていく
	2つ目の列名 型,          -- NULLを許可する場合は何も書かない(NOTNULLだけ書く)
    CONSTRAINT 主キーの名前 PRIMARY KEY (主キーを構成する列)  --主キーの書き方
);


--例:部署マスタ(department)を作成するCREATE文
CREATE TABLE department
(
    department_code character varying(10) NOT NULL,         -- 部署コードを10文字で用意
	department_name character varying(100),                 -- 部署名を文字100文字で用意
    CONSTRAINT pk_department PRIMARY KEY (department_code)  -- 部署コードで主キーとする
);


-- 主キーが複数の場合の例
CREATE TABLE テーブル名
(
   (略)
    CONSTRAINT 主キーの名前 PRIMARY KEY (主キーを構成する列1 , 列2 , 列3 , ・・・)
);

※上のものは例なので、テーブル名や列名を実行し試してみて下さい。

 

 

 

列の型について

列に設定する型はそれぞれ次の記事で説明しています。

文字型

数値型

論理型(boolean)