【Ubuntu18】PostgreSQLをインストール~テーブル作成までの手順を超詳しく解説

2019年7月21日

Ubuntu18.04にPostgreSQLをインストール~テーブル作成するまでの手順を超詳しく解説します。

このページは以下の公式サイトに沿ったやり方でインストール作業を行います。
https://wiki.postgresql.org/wiki/Apt

この記事を読んでも分からないところがあったり、
記事の内容に誤りを見つけた方はコメントにてお知らせください。

それでは、実際に進めていきましょう。

実行環境

OS: Ubuntu 18.04.2 LTS
python: 3.6.8

インストール手順

インストール手順を説明していきます。

鍵の入手

インストールしようとしているPostgreSQLが本物か確認できる様にリポジトリキーというものを使います。
これをしないと不正に改ざんされたPostgreSQLっぽい違うものをインストールさせられてしまうかもしれません。

以下の手順で鍵を入手し、ホストマシンに登録します。

# 鍵のインストール、PostgreSQL利用に必要なパッケージをインストール。
$ sudo apt install curl ca-certificates gnupg
# 鍵を取得し、その鍵を登録する
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

PostgreSQLの公式リポジトリを登録

“sudo apt ~”でubuntuで使うパッケージを管理出来ます。
この手順ではPostgreSQLの公式が配布してくれているリポジトリをaptで管理できる様にしています。

# "/etc/apt/sources.list.d/pgdg.list"ファイルを作成。
# このファイルには利用するリポジトリの場所だったり、種類だったりの詳細を記載し、aptで管理できるようにする。
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

PostgreSQLのインストール

# パッケージの参照先情報を最新にする(これをしないと最新ではないパッケージをインストールしてしまうことがある)
$ sudo apt update
# PostgreSQLをインストールする
$ sudo apt install postgresql

これでインストール作業は完了です。

PostgreSQLにログイン

ここからはPostgreSQLへのログイン手順について解説します。

起動

インストールしただけではPostgreSQLが停止した状態なので起動させます。

$ /etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service.

/etc/init.d/postgresqlはPostgreSQLのインストールと同時に作成されます。
startを指定した時は起動。stopにした時は停止。statusとすると起動状態が分かります。

ログイン

インストール直後、PostgreSQLにログインできるユーザーは
インストールと同時に作成されるユーザー”postgres”のみです。
(OSのユーザーとしての”postgres”とPostgreSQLのユーザーとしての”postgres”の2人ができます。)

PostgreSQLにログインするためpostgresにユーザーを切り替えます。

# postgresユーザーには初期パスワードが設定されていないので設定
$ sudo passwd postgres
# ユーザー変更
$ su - postgres
# 現在のOSユーザー名と同じ名称のPostgreSQLユーザーでPostgreSQLにログインする
$ psql

以下のコマンドを使えば、任意のユーザーでPostgreSQLにログインすることが可能です。

$ psql -U username

以下の様な表示が出力されればログイン成功。

$ psql
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))
Type "help" for help.
postgres=# 

DB作成

PostgreSQL内で下記のコマンドを使ってDBを作成ぢmsづ。

# database_nameという名前のDBを作成する。所有者はpostgresに設定
postgres=# CREATE DATABASE database_name OWNER postgres;
CREATE DATABASE

「 \l 」 コマンドでDBが作成されているか確認する。

postgres=# \l                                    List of databases
     Name      |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
---------------+----------+----------+-------------+-------------+-----------------------
 database_name | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
 template1     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
(4 rows)

一番上に追加したdababase_nameと言う名のDBが作成されていることが分かる。

では作成したDBに入る。

# \c DB名 で任意のDBに入ることが出来る
postgres=# \c database_name
You are now connected to database "database_name" as user "postgres".
database_name=#

テーブル作成

以下の様なbookテーブルを作成してみましょう。

IDnameauthor
1我輩は犬であった冬目漱岩
2人間合格太宰傷

作成コマンド

# integer型のid,varchar(10)型(10文字までの文字列)のname,
# varchar(10)型のauthorカラム(列)をもったbookと言う名のテーブルを作成する
database_name=# CREATE TABLE book (id integer, name varchar(10), author varchar(10));
CREATE TABLE
# 作成されているテーブルを確認
database_name=# \dt
        List of relations
 Schema | Name  | Type  |  Owner
--------+-------+-------+----------
 public | book  | table | postgres
(1 row)
# bookテーブルの中身を確認
database_name=# SELECT * FROM book;
 id | name | author
----+------+--------
(0 rows)

値が格納されていないbookテーブルが出来上がりました!

値の格納

# bookテーブルに行を追加
# ()で囲まれているのが一つの行に当たる
database_name=# INSERT INTO book VALUES (1, '我輩は犬であった', '冬目漱岩'), (2, '人間合格', '太宰傷');
INSERT 0 2
# 格納後のテーブル内容確認
database_name=# SELECT * FROM book;
 id |       name       |  author
----+------------------+----------
  1 | 我輩は犬であった   | 冬目漱岩
  2 | 人間合格      | 太宰傷
(2 rows)
database_name=#

追加されました。
これで作りたかったテーブル完成です!

IDnameauthor
1我輩は犬であった冬目漱岩
2人間合格太宰傷

まとめ

ここまで実行したことを振り返ります。

  1. PostgreSQLのインストール
  2. PostgreSQLへのログイン
  3. DB作成
  4. テーブル作成
  5. 値格納

以上。

テーブルの作成方法はたくさんありますが、今回は一番基本的な作り方を紹介しました。

基本を覚えておけば応用的な作り方をする際にも簡単に理解することができます。何度も読み直して頭に叩き込みましょう。

参考にしたサイト