【未経験者向け】PostgreSQL セットアップ（Windows向け）

## **PostgreSQL セットアップ**
* 知り合いの未経験者向けにSQLの学習が行える環境を作成する手順を提示する。

## **環境情報**
* Windows10(Client)

## **１．ダウンロード**
* [PostgreSQL](https://www.postgresql.org/)の公式ホームページからダウンロードページへリンクすることができる。

## *TopPage*
![01.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/e767c97e-4bc6-c70a-5bc6-545e85c7ba56.jpeg)

## *DownloadPage*
![02.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/f61f5abe-b3c8-26f5-16f4-d4bc99ea0e53.jpeg)

## *InstallerDownloadLink*
![03.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/bf88e253-c600-4151-01b9-56c9c3e862de.jpeg)

## インストーラのダウンロードページからダウンロードする。
※今回は、Version 9.6.8 / Windows 64bin向けを選択
![download01.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/ce4de2c1-2c2f-2733-e203-148766a8a984.jpeg)


## **２．インストール**
* ダウンロードした「postgresql-9.6.8-2-windows-x64.exe」を起動して、ウィザードに従いインストールすればOK
* 設定が必要なポイントは以下の5か所
    1. インストール場所（Installtion Directory）
        - PostgreSQLの本体が格納される。
    2. データファイル場所（Data Directory）
        - データベースの実体となるファイルが格納される。
    3. 初期ユーザ：postgres パスワード（Password/Retype Password）
        - 初期のSuperuserであるpostgresユーザのパスワード設定が必要。
    4. サービスポート（デフォルト：5432）
        - データベースのサービスポート
    5. ロケール設定：（デフォルト：ローカルロケール）
        - データベースの国情報設定（日本で使用する分には、Japanでよい）

## **３．PATHの設定**
* psqlやcreatedb などのコマンド利用のためにPATHを通しておく。

## *システム詳細設定から環境変数を追加*
![env2.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/308885e8-1f9a-7916-f599-2fa3a527c989.jpeg)
![addPath.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/554ff430-c5da-ddfa-0a27-bb567c363c16.jpeg)

## **４．確認**
* コマンドプロンプトから、以下のコマンドを実行し、バージョン確認できればOK

```
psql --version
```
![version.JPG](https://qiita-image-store.s3.amazonaws.com/0/32561/48f0c0ce-a3ac-52b4-c0a5-61be16d4b9c8.jpeg)

### **おまけ：テストデータ投入**
* [postgresql tutorial](http://www.postgresqltutorial.com/postgresql-sample-database/) としてデータ「dvdrental」を想定したデータセットを投入してくれるsqlスクリプトが提供されている。

最初に、dvdrentalというデータベースを作成

```
createdb -U postgres dvdrental
```
1. ダウンロードファイルを解凍する。
2. 解凍するとdvdrental.tar があるのでこれを展開する。
3. アーカイブを展開するとdatファイルとsqlスクリプトがあるため、これを実行する。

```コマンド実行
psql -U postgres -d dvdrental -f restore.sql
```

**注意点**

1. 解凍直後のファイルは、権限変更が必要。
　　（dvdrentalフォルダ>セキュリティ>Everyoneにフルコン付与）
2. restore.sqlは、datファイルパスが\$\$PATH\$\$となっているため、sqlファイルを直接修正し、フルパスアクセスできるようにする。

**確認**
データベース「dvdrental」にアクセスして、テーブル作成されていればOK

```
C:\>psql -U postgres dvdrental
ユーザ postgres のパスワード:
psql (9.6.8)
"help" でヘルプを表示します.

dvdrental=# \dt
               リレーションの一覧
 スキーマ |     名前      |    型    |  所有者
----------+---------------+----------+----------
 public   | actor         | テーブル | postgres
 public   | address       | テーブル | postgres
 public   | category      | テーブル | postgres
 public   | city          | テーブル | postgres
 public   | country       | テーブル | postgres
 public   | customer      | テーブル | postgres
 public   | film          | テーブル | postgres
 public   | film_actor    | テーブル | postgres
 public   | film_category | テーブル | postgres
 public   | inventory     | テーブル | postgres
 public   | language      | テーブル | postgres
 public   | payment       | テーブル | postgres
 public   | rental        | テーブル | postgres
 public   | staff         | テーブル | postgres
 public   | store         | テーブル | postgres
(15 行)


dvdrental=#
```