【SQL超入門講座】09.postgresqlの環境構築|MacとWindowsで解説!

こんにちは。キノコードです。今まではSQLiteを使って、SQLの超入門講座を進めてきました。
今まではSQLiteを使って、SQLの超入門講座を進めてきました。
学習用であったり、簡単なWebアプリケーションを作成するのであれば、SQLiteでも問題ないです。
しかし、SQLiteでは実装していないSQLもあります。
そこで、この動画では、実務でも使われている本格的なRDBMSであるPostgreSQLの環境構築の説明をします。
動画では、MacとWindowsともに解説をします。

PostgreSQL環境構築の説明

まず、PostgreSQLでSQLを使えるようになるための手順を説明します。
お使いのパソコンにPostgreSQLとpgAdmin4をインストールします。
PostgreSQLはRDBMS本体であり、pgAdmin4はGUIを使ってデータベースを操作できるツールです。
GUIツールには色々ありますが、今回はpgAdmin4を使ってPostgreSQLに接続し、データベースを操作します。
はじめに、Macの環境を構築していきましょう。

インストール

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

インストールには、Homebrewを使用します。
Homebrewとは、Macのパッケージ管理ツールです。Homebrewがあれば、ターミナルからソフトウェアのインストールやアンインストールが簡単に行えます
Homebrewがインストールされていない場合は、Homebrewのサイトにいき、このコマンドをコピー。
ターミナルに貼り付けてエンターを押して実行です。

$ brew install postgresql

Homebrewのインストールが終わったら、次にPostgreSQLをHomebrewを使ってインストールします。
ターミナルにこのコマンドを入力します

$ psql --version

インストールが完了したら、このコマンドを入力してバージョンを確認します。

psql (PostgreSQL) 12.1

次に、このコマンドを入力してpgAdmin4をインストールします。

$ brew install pgadmin4

インストールが完了すると、ローンチパッドに象のマークのpgadmin4が出現しています。

PostgreSQL準備

$ postgres -D /usr/local/var/postgres

次に、ユーザーとデータベースを作っていきましょう。
ターミナルにこのコマンドを入力し、PostgreSQLを起動します。

 LOG:  database system is ready to accept connections

このメッセージが表示された状態で画面が止まります。
[command]+[T]キーをクリックし、ターミナルの新しいタブを開きます。
メッセージが表示されている方のタブでキャンセルコマンドを送信するとPostgreSQLが停止してしまうので気をつけてください。
新しいタブで以下のコマンドを入力し、任意の名前のPostgreSQL用のユーザを作ります。

$ createuser -P workuser

今回はcreateuser -P workuserとしました。

Enter password for new role:

以下のメッセージが表示されるので、任意のパスワードを設定します。

Enter it again: 

再度入力を求められるので、同じパスワードを入力します。

$ psql -l

以下のコマンドを入力し、今あるデータベースを確認します。

$ psql -d postgres

postgresというデータベースが作成されているので、そこに接続します。

postgres=# \du

以下のコマンドを入力し、ユーザ一覧を確認します。
先ほど作成したworkuserが存在するのがわかります。

postgres=# ALTER ROLE workuser CREATEDB;

workuserでデータベースを作成するため、以下のコマンドでデータベース作成権限を付与します。
workuserでデータベースを作成するため、以下のコマンドでデータベース作成権限を付与します。

postgres=# \du

もう一度ユーザ一覧を確認します。
workuserにデータベース作成権限を付与されています。

これでMacのPostgreSQLの準備は完了です。

¥q

PostgreSQL切断

バックスラッシュとqでデータベースの接続を切ることができます。
実行します。
切断できました。

PostgreSQL停止

PostgreSQLを停止するには「Ctrl + C」でできます。
停止できました。
これでmacの環境構築は終わりです。

インストール

次に、Windowsの環境を構築していきましょう。
Windowsでも、Macと同様にPostgreSQLとGUIツールのpgAdmin4をインストールします。
また、Windowsでの解説もMacと同様に、pgAdmin4からPostgreSQLに接続し、データベースを作成します。
作成したデータベースにテーブルを作成し、データの登録までを行います。
まず最初に、インストーラをダウンロードして、インストールしていきます。
ブラウザでURLを入力して、EDB 社のダウンロードサイトを開きます。

次に、OSのビット数を確認し、OSにあったインストーラをダウンロードします。
ビット数の確認方法は、Windows ロゴ キーの右側の検索窓に「システム」を入力し、システム コントロールをクリックします。

システムの種類に64ビットとあります。

それでは、64ビット版の最新のインストーラをダウンロードします。32ビット版のパソコンをお使いの人は、32ビット版のインストーラーをダウンロードしてください。

ダウンロードが完了したので、フォルダを開いて、インストーラを起動します。

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

インストールするのフォルダはデフォルトのまま、「Next」をクリックします。
「pdAdmin4」にチェックが入っていることを確認して、「Next」をクリックします。
ここもデフォルトのまま、「Next」をクリックします。
パスワードにはお好きなものを設定できます。ここでは「postgres」を入力して、「Next」をクリックします。
パスワードは、データベースに接続するときに使うので、忘れないようにしましょう。
次に、DBに接続するためのポートを指定します。5432ポートを使っていなけばデフォルトのまま、「Next」をクリックします。
ここからはすべてデフォルトのまま、「Next」をクリックしていきます。
インストールが完了しました。チェックを外して、「Finish」をクリックします。
Windows ロゴ キーをクリックして、PostgreSQLが表示されていればインストール完了です。

PostgreSQL準備

Windowsではインストールが完了すると、PostgreSQLが自動で起動されます。
現在は、PostgreSQL接続されているので、このままPostgreSQL用のユーザを作ります。
Windows ロゴ キーをクリックして、「SQL Shell (SQL)」をクリックします。
データべースの情報がいろいろ表示されます。パスワード以外は、デフォルトのまま「Enter」を押します。
パスワードは、PostgreSQLのインストール時に入力した「postgres」を入力して、「Enter」を押します。
PostgreSQLのpostgresというデータベースに接続することがきました。
次に、コマンドを実行して、任意の名前のPostgreSQL用のユーザを作ります。
今回は、ユーザを「workuser」としました。パスワードを「postgres」にしました。

create role workuser with login password 'postgres';

ユーザが作成されました。
次に、ユーザ一覧を確認するコマンドを実行します。ユーザ一覧を確認するにはバックスラッシュduで確認できます。

\du

先ほど作成したworkuserが存在するのがわかります。
workuserでデータベースを作成するため、このコマンドでデータベース作成権限を付与します。

ALTER ROLE workuser CREATEDB;

もう一度ユーザ一覧を確認します。

\du

workuserにデータベース作成権限を付与されています。
これでPostgreSQLの準備は完了です。
PostgreSQLの接続を切断する方法を説明します。
このコマンドを実行してください。

\q

これで切断できました。
続いて、PostgreSQLの停止と起動方法を説明します。
停止や開始するときは、コントロールパネルのサービスで操作していきます。
[Windows] + [R]を押して「ファイル名を指定して実行」を表示します。
「control」を入力して「OK」をクリック。
[システムとセキュリティ] 、[管理ツール] の順にクリックし、「サービス」を起動します。
サービスの名前を一度クリックしたあとに、キーボードの「p」を押します。
名前が「p」で始まるサービスに移動しました。
「postgresql」をダブルクリックします。
サービスの状態が「実行中」なので、「停止」ボタンでPostgreSQLを停止することができます。
停止してみましょう。これで停止できました。
停止されているので、このように接続することができません。
次に、開始してみましょう。
サービスの状態が「停止」なので、「開始」ボタンで開始することができます。
開始しているので、接続できました。
最後に、パソコンを起動したときのPostgreSQLの起動について説明します。
デフォルトでは、パソコンを起動したとき、PostgreSQLが自動で起動する設定になっています。
自動的に起動させたくない方は、こちらを「手動」にして、「適用」してください。

pgAdminから接続

それでは次にpgadmin4を使ってpostgresqlに接続してみましょう。
アプリケーションフォルダにある以下のアイコンをダブルクリックし、pgAdminを起動します。
左ペインの[Servers]を右クリックし、[Create]>[Server...]を選択します。
接続先の設定をします。
[General]タブの[Name]に任意の接続名を設定します。
今回はtest1としました。
[Connection]タブの[Host name/address]はローカルホストを設定します。
[Username]、[Password]は先ほど作成したPostgreSQL用ユーザのユーザ名とパスワードを入力します。
その他はデフォルト設定です。
この状態で、[Save]をクリックします。
左ペインに作成した接続名が表示されればOKです。

DB作成

次にデータベースを作成します。
左ペインに表示されている接続名[test1]の左にある>をクリックして展開すると、いくつかメニューが表示されます。
その中の[Databases]を右クリックし、[Create]>[Database...]を選択します。
[Create - Database]ウインドウが表示されます。[General]タブの[Database]に任意のデータベース名を設定します。
今回はtest_databaseとしました。
その他の設定はデフォルトで[Save]をクリックします。
これで、データベースの作成は完了です。
作成したデータベース名は左ペインの[Databases]配下に表示されます。

テーブル作成

作成したデータベース内にテーブルを作成します。
今回は、会員ID、会員名、生年月日の情報を持つ会員情報テーブルを作成します。
左ペインで、作成したデータベース名[test1db]の左の>をクリックして展開すると、たくさんメニューが表示されます。
その中の[Schemas]の左の>をクリックしてさらに展開します。
その中の[Tables]を右クリックし、[Create]>[Tabale...]を選択します。
[Create - Table]ウインドウが表示されます。
[General]タブのNameにテーブル名を入力します。
会員情報テーブルのテーブル名をmemberとしました。
[Columns]タブでカラム設定をします。
今回は以下のように設定します。
[Name]にカラム名を入力し、[Data type]のプルダウンメニューからデータ型を選択します。
会員IDのカラム名をidとします。
データ型は数値の[integer]を指定します。
会員IDは一意である必要があるため、[Primary key?]を[Yes]にします。
会員名のカラム名はnameとします。
会員名のデータ型は文字数上限のある文字列の[character varying]とします。
[Length/Precision]に最大文字数を入力します。
会員名の最大文字数は100文字とします。
生年月日のカラム名はbirthdayとします。
生年月日のデータ型は日付の2024/04/20を指定します。
全てのカラムについて入力を必須とするため、[Not NULL?]を[Yes]とします。その他の設定はデフォルトのままで[Save]をクリックします。
これで、テーブルの作成は完了です。
作成したテーブルは左ペインの左ペインの[Tables]配下に表示されています。

データ登録

作成したテーブルにデータを登録します。
左ペインの[member]を右クリックし、[View/Edit Data]>[All Rows]と選択します。
画面の下半分の[Data Output]タブにテーブルが表として表示されます。
各行のカラムをダブルクリックしてデータを登録できます。
データは前項で設定したデータ型や制約に従って入力する必要があります。
今回は以下のように入力します。
画面上部のメニューにある以下のアイコンをクリックし、データを保存します。
テーブルへのデータ登録が完了しました。
以上で、SQL文を実行する準備ができました。