PostgreSQLでSQL実行までのチュートリアル
Tags: sql, postgres, beginners
Published: 2018-07-12 06:48:13

---
title: PostgreSQLでSQL実行までのチュートリアル
published: true
description: pgadminを使ってSQLの実行を検証します。
tags: SQL,PostgreSQL,beginner
---

本投稿ではPostgreSQLにアクセスし、

- データベースの作成
- テーブルの作成
- データの投入
- SQLの実行

を行います。

まだPostgreSQLをお持ちでない方は以下の記事

[PostgreSQLを導入する方法
](https://dev.to/programmingmonky/postgresql-1h6h)

を参照にWindowsにPostgreSQLを導入してください。


# pgadmin起動

本投稿ではPostgreSQLのクライアントにGUIツールであるpgadminを利用します

スタートメニューなどでpgadminと入力するなどしてpgadminを起動してください。

![起動画面](https://thepracticaldev.s3.amazonaws.com/i/g3fhcxvs0ra7t7rx8hzn.png)

# サーバー接続


初期からデフォルトで存在するサーバーに接続します。

Server>PostgreSQL 10を右クリックし、「Connect Server」を押してください。

![connect](https://thepracticaldev.s3.amazonaws.com/i/zpgwfc404gx3bdf299da.png)

するとパスワードを入力する画面が出てくるので、
インストール時に設定したパスワードを入力してください。

https://thepracticaldev.s3.amazonaws.com/i/ropadw7o5064hvgcgo0k.png

パスワードを入力したら「OK」を押してください

サーバーに接続できました。

# データベース作成


Browserに表示されているサーバーの「PostgreSQL 10」を右クリックし

Create>Database...

を選択してクリック。

![選択](https://thepracticaldev.s3.amazonaws.com/i/yen0q4unrj5w379pwb7x.png)


するとデータベースを作成する画面が出てくるので

![作成画面](https://thepracticaldev.s3.amazonaws.com/i/bvjc0jmuf27hq09x10fk.png)


databaseの欄にデータベース名を入力してください。
今回はsampleとしました。

入力が終わったら「Save」をクリック

sampleというデータベースが作成されました。
Browserで確認できます。
![データベース作成後](https://thepracticaldev.s3.amazonaws.com/i/ywjotx7yuajgamd02oax.png)

#テーブル作成

では作成したsampleデータベースにさっそくテーブルを作成します。

テーブルはSQLによって作成します。
SQLの発行はQuery Toolsを使います。

sampleを右クリックし、「Query Tool」を選択してください。



![aa](https://thepracticaldev.s3.amazonaws.com/i/yqysv6r36hoyvttno7gw.png)

Query Toolのウインドウに以下のSQLを貼り付け実行ボタン(雷のマーク)をクリックしてください。

```
create table m_country(
  name_jp    varchar(255),                 -- 国・地域名
  name_eng   varchar(255),                 -- ISO 3166-1における英語名
  code       char(3) NOT NULL PRIMARY KEY, -- numeric
  alpha_3    char(3),                      -- alpha-3
  alpha_2    char(2),                      -- alpha-2
  region     varchar(255),                 -- 場所
  iso_3166_2 varchar(255)                  -- 各行政区分(ISO 3166-2)
);
```

![query実行](https://thepracticaldev.s3.amazonaws.com/i/p3t845ozqfx0fplqou7w.png)

クエリを実行すると
ブラウザの

sample>Schemas(1)>public>Tables(1)配下に
SQLで作成したm_countryが出現するはずです。

![country](https://thepracticaldev.s3.amazonaws.com/i/eyrhpa1oy6uhguejmww2.png)

## データ投入

それでは作成したm_countryテーブルにデータを投入します。

Query Toolを使って以下のSQLを実行します。

https://github.com/programmingMonky/sample_SQL/blob/master/country_insert.sql

 - SQLが大きすぎるのでgithubのリポジトリ上に置きました。
 - このデータの出典は日本語版の[Wikipedia](https://ja.wikipedia.org/wiki/ISO_3166-1)です。

# SQLを実行してみよう

再びQuery Toolにアクセスし、テーブル内容を確認してみましょう

```
select * from m_country
```

insertで入れたデータが確認できると思います。

![内容確認](https://thepracticaldev.s3.amazonaws.com/i/5qhvxkxps3a199zdxy9c.png)

それではSQLでちょっと遊んでみましょう。
Query Toolで以下のクエリを打ち込みます


```
select code,name_jp,region,
count('1') over(partition by region) as num

from m_country
order by num
```


クエリの内容は
地域ごとに類別し、少ない地域に属する国順に表示する。というものです。

※分析関数という難しい構文を使っているでSQL初心者の方は理解する必要はありません。

| code | name_jp                    | region      | num | 
|------|----------------------------|-------------|-----| 
| 643  | ロシア連邦                 | ロシア      | 1   | 
| 010  | 南極                       | 南極        | 2   | 
| 470  | マルタ                     | 地中海地域  | 2   | 
| 196  | キプロス                   | 地中海地域  | 2   | 
| 074  | ブーベ島                   | 南極        | 2   | 
| 666  | サンピエール島・ミクロン島 | 北アメリカ  | 3   | 
| 840  | アメリカ合衆国             | 北アメリカ  | 3   | 
| 124  | カナダ                     | 北アメリカ  | 3   | 

南極にもカントリーコードが振られているという興味深いことがわかりました。

このよう本投稿に掲載した手順でPostgreSQL上に
データベースやテーブルを作成したり、
SQLでデータを扱えるようになりました。

皆様がWebアプリケーションを作成する際の参考になれば幸いです。