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

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テーブルを作成してみましょう。
ID | name | author |
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=#
追加されました。
これで作りたかったテーブル完成です!
ID | name | author |
1 | 我輩は犬であった | 冬目漱岩 |
2 | 人間合格 | 太宰傷 |
まとめ
ここまで実行したことを振り返ります。
- PostgreSQLのインストール
- PostgreSQLへのログイン
- DB作成
- テーブル作成
- 値格納
以上。
テーブルの作成方法はたくさんありますが、今回は一番基本的な作り方を紹介しました。
基本を覚えておけば応用的な作り方をする際にも簡単に理解することができます。何度も読み直して頭に叩き込みましょう。
ディスカッション
コメント一覧
まだ、コメントがありません