目次
PostgreSQLとは
PostgreSQL(ポストグレスキューエル)とは、「POSTGRES, Version 4.2」がベースになっている、オープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)のことです。
POSTGRESは後にいくつかの商用データベースで利用可能になった、多くの概念に関する先駆となりました。
PostgreSQLはオリジナルのソースコードを引き継いだオープンソースのデータベースで、ソースはすべて公開されており、さまざまな利用用途において無料で利用可能です。
さらに、標準SQLの多くの機能やその他の最新機能もサポートしています。
LinuxやmacOSなどのUNIX系OSはもちろん、Windowsにも対応している特徴があります。
BSDライセンス(Berkeley Software Distribution License)の中でも、非常に緩やかなライセンスを採用しており、独自で機能の追加や改修をした場合にも公開する義務はありません。
PostgreSQLのダウンロード・インストール方法
ではさっそく、PostgreSQLのダウンロード・インストール方法をみていきましょう。
まずは、PostgreSQLをサイトからダウンロードします。
次のURLからダウンロード可能です。
サイトを開いたら、画面の左上もしくは中央にある「Download」をクリックします。
ダウンロードページを開いたら、使っているOSに合わせて「macOS」か「Windows」を選びます。
OSごとのダウンロードページを開いたら、「Download the installer」のリンクをクリックしましょう。
バージョンごとのダウンロードリンクがあるので、ここではmacOSの最新バージョンである「12.3」をダウンロードします。
クリックするとダウンロードが開始されるので任意の場所に保存してください。
ダウンロードはこれで終了です。
続いてPostgreSQLをインストールしましょう。
ダウンロードしたdmgファイルを開いてインストーラーを起動します。
Macはdmgファイルをクリックすると「postgresql-◯-.◯-◯-osx」が開くので、これをクリックしましょう。
セットアップインストーラーが開きました。「Next >」をクリックして進めます。
Installation Directoryでインストールする場所を指定します。
デフォルトの場所でも任意の場所でもOKです。設定したら「Next >」をクリックしましょう。
Select Componentsでインストールしたいコンポーネントを選べます。
ここはすべてにチェックを入れたままでOKです。
Data Directoryで作成したデータを格納するディレクトリを指定します。
こちらも変更したい場合は変更してOKです。ここではデフォルトのまま進めます。
Postgresアカウントのパスワードを設定します。
パスワードは忘れないようにメモしておいてくださいね。
パスワードを入力(確認用も)したら「Next >」をクリックします。
PortでPostgreSQLと通信を行う際のポート番号を指定できます。
基本的にはデフォルトで設定されている「5432」で問題ないです。
もし他で「5432」を使用している場合は変更しましょう。
Advanced Optionsで新規で作成するデータベースクラスタのロケールを設定します。
デフォルトは[Default locale] になっていますが、ここでは「ja_JP/UTF-8」にしました。
Pre Installation Summaryで、ここまでの設定内容を確認できます。
問題なければ「Next >」で進めましょう。
インストールの最終確認です。
「Next >」でインストールが開始しますので、問題ないようでしたらインストールを開始します。
上記の画面が表示されたらインストール完了です。
「Stack Builder ……」と書かれているチェックボックスにチェックを入れて「Finish」をクリックすると、追加アプリケーション(ドライバーなど)のインストールができます。
不要であればこちらのチェックは外して終了しましょう。
PostgreSQLへ接続する
PostgreSQLのインストールができたら、さっそく接続してみましょう。
ここでは、psqlを使って接続してみます。
psqlとは、PostgreSQLで作成されたデータベースへコマンドラインベースで接続したり、テーブルのデータを取得したりできるツールのことです。
macでpsqlを起動するには、アプリケーションフォルダにある「PostgreSQL ○」フォルダを開きます。○はバージョン番号ごとに変わります。
フォルダの中にある「SQL Shell (psql)」がpsqlです。これを起動します。
起動するとターミナルが立ち上がり、次のメッセージが表示されるはずです。
For more details, please visit https://support.apple.com/kb/HT208050. /Library/PostgreSQL/12/scripts/runpsql.sh; exit mbp:~ ○○○○○$ /Library/PostgreSQL/12/scripts/runpsql.sh; exit Server [localhost]:
接続するサーバはデフォルトのままで問題ないので、何の入力しないでエンターキーを押していきましょう。
途中でパスワードの入力が求められるので、インストール時に設定したパスワードを入力します。
Server [localhost]: Database [postgres]: Port [5432]: Username [postgres]: Password for user postgres: Welcome to psql 12.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=#
問題なくpsqlへ接続できると「postgres=#」と表示されます。
これで接続・起動が確認できました。
psqlを終了させるには「\q」と入力すればOKです。
PostgreSQLの設定ファイルについて
PostgreSQLに関する設定ファイルは、大きく分けて次の3つあります。
・postgresql.conf:PostgreSQLの基本的な設定に関するファイル
・pg_hba.conf:ホスト単位で接続許可を設定するファイル
・pg_ident.conf:OSのユーザー名とデータベースのユーザー名をマッピングするファイル
ここでは詳しい解説はしませんが、それぞれどんな設定がされているのか覚えておきましょう。
PostgreSQLでデータベースを作成する
PostgreSQLでデータベースを新しく作成してみます。
データベースを新規作成する時は「CREATE DATABASE」コマンドを使います。
CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ]
[]で書かれた部分はオプションです。
書いても書かなくてもOKなので、基本的には次のようにシンプルに書けます。
CREATE DATABASE name
nameの部分に作成したいデータベース名を指定して作成します。
では実際にデータベースを作成してみましょう。
psqlを起動して次のようにコマンドを入力します。
postgres=# CREATE DATABASE mydb;
入力後に「CREATE DATABASE」と表示されれば、データベースの作成完了です。
作成したデータベースの一覧を確認してみましょう。
データベースの一覧を表示するには「¥l」を入力します。
postgres=#\l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- mydb | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
上記のように「mydb」が作成されているのがわかります。
なお、「postgres」「template0」「template1」はデフォルトで用意されているデータベースです。
指定のデータベースに接続する
psqlを立ち上げてPostgreSQLへ接続する際に、データベースの指定がない場合は接続に使うロールと同じ名前のデータベースへ接続します。
ここでは、先ほど作成した「mydb」へ接続してみましょう。
psqlを起動し、「Database [postgres]:」でmydbと入力します。
Server [localhost]: Database [postgres]: mydb Port [5432]: Username [postgres]: Password for user postgres: psql (12.3) Type "help" for help. mydb=#
これでmydbへの接続が完了します。
また、現在接続中のデータベースとは別のデータベースへ接続したい場合には、「¥c」コマンドを使います。
postgres=# \c mydb You are now connected to database "mydb" as user "postgres". mydb=#
これでmydbデータベースへ接続できました。
ターミナルに表示されているデータベース名も「mydb」になっています。
PostgreSQLでテーブルを作成する
では、データベースにテーブルを作成してみましょう。
テーブルを作成するには「CREATE TABLE」コマンドを使用します。
書式は次のようになります。
CREATE TABLE [ IF NOT EXISTS ] table_name ( column_name data_type [, ... ] )
サンプルでidとnameをもつmytableを作成してみましょう。
CREATE TABLE mytable ( id integer, name varchar(10) );
コマンド入力後に「CREATE TABLE」と表示されれば正常に作成できています。
テーブルへデータを追加する
mytableにデータを追加してみましょう。
データを追加するには、「INSERT INTO」コマンドを使います。
INSERT INTO table_name [ ( column_name [, ...] ) ] VALUES ( { expression | DEFAULT } [, ...] )
こちらもサンプルで実際に確認してみます。
mydb=# INSERT INTO mytable VALUES (526, 'Sasaki'); INSERT 0 1
これでデータの追加が完了です。
テーブルの中身を表示してみましょう。
SELECT * FROM mytable; id | name -----+-------- 526 | Sasaki (1 row)
追加したデータが表示されました。
テーブルのデータを更新する
先ほど追加したデータを更新してみましょう。
データを更新する場合は「UPDATE」コマンドを使用します。
UPDATE [ ONLY ] table_name SET column_name = { expression | DEFAULT } [, ...] [ WHERE condition ]
さっそく、サンプルで確認してみましょう。
UPDATE mytable SET id = 527; UPDATE 1 SELECT * FROM mytable; id | name -----+-------- 527 | Sasaki (1 row)
ちゃんとデータの更新ができました。
テーブルのデータを削除する
今度はテーブルのデータを削除してみましょう。
データを削除するには「DELETE」コマンドを使いましょう。
DELETE FROM [ ONLY ] table_name [ WHERE condition ]
実際にデータを削除してみます。
DELETE FROM mytable; DELETE 1 SELECT * FROM mytable; id | name ----+------ (0 rows)
データの削除が完了し、テーブルが空になりました。
まとめ
PostgreSQLの概要やインストール方法、データベースへの接続方法などを解説しました。
PostgreSQLはさまざまなOSに対応し、利用者も多いデータベースです。
ぜひこの記事を参考に、インストールして利用してみてください!