(最終更新日:2023年6月)
✔このような方へ向けて書かれた記事となります
「PostgreSQLでデータベースを作成する方法は?」
「”CREATE DATABASE”コマンドの使い方を知りたい」
「PostgreSQLでデータベースを作る簡単な実例が知りたい」
✔当記事を通じてお伝えすること
- PostgreSQLのデータベース作成の基本
- “CREATE DATABASE”コマンドの書き方とその応用
- PostgreSQLでデータベースを作成する実例
当記事では、PostgreSQLでデータベースを作成する基本から、“CREATE DATABASE”コマンドを用いた応用的な使い方まで、具体例を交えて詳しく解説しています。
最後までお付き合いいただけると幸いです。
PostgreSQLの基本情報
まずはPostgreSQLの基本をご覧ください。
基本をご理解いただいたうえで、先へ進みましょう。
- PostgreSQLの名前の由来
- PostgreSQLの概要と利点
PostgreSQLの名前の由来
PostgreSQLの名前は、原始的なデータベース管理システムである”Ingres”に対する後継者であることを意味する”Post-Ingres”から来ています。
その後、”SQL”が追加され、オープンソースのオブジェクトリレーショナルデータベース管理システムを象徴する名前となりました。
PostgreSQLの概要と利点
PostgreSQLでは、大規模なDB操作を安全におこなえます。
なぜならPostgreSQLは、ACID準拠のトランザクションとMVCC(Multi-Version Concurrency Control)をサポートしているから。
また、高度なオブジェクトリレーショナルDBMSとして、さまざまな機能を提供しています。
- ストアドプロシージャ
- トリガ
- 制約
- 多数の組み込みおよびユーザ定義のデータ型
データベースの作成方法
こちらでは、「データベースの作成方法」について説明します。
- 基本的なデータベース作成コマンド
- 各種パラメータを設定してデータベース作成
- データベース作成時の注意点
- 作成データベースの確認方法
基本的なデータベース作成コマンド
PostgreSQLでデータベースを作成するには、CREATE DATABASEコマンドを使用します。
このコマンドは、指定した名前の新しいデータベースが作成するもの。
基本的なコマンドの形式は以下の通りです。
CREATE DATABASE dbname;
各種パラメータを設定してデータベース作成
CREATE DATABASEコマンドには、さまざまなオプションを指定できます。
以下はその一覧表です。
オプション名 | 説明 | 例 |
---|---|---|
OWNER | データベースの所有者を指定します。 | CREATE DATABASE mydb OWNER myuser; |
ENCODING | データベースの文字セットを指定します。 | CREATE DATABASE mydb ENCODING 'UTF8'; |
LC_COLLATE | データベースの照合順序を指定します。 | CREATE DATABASE mydb LC_COLLATE 'ja_JP.UTF-8'; |
LC_CTYPE | データベースの文字の分類を指定します。 | CREATE DATABASE mydb LC_CTYPE 'ja_JP.UTF-8'; |
データベース作成時の注意点
データベース作成時には、いくつかの注意点があります。
- データベース名は一意でなければならない
- データベース作成は一般的にスーパーユーザまたはCREATE DATABASE権限を持つユーザのみが実行できる
- 一部のパラメータはデータベース作成後には変更できない
作成データベースの確認方法
新たに作成されたデータベースを確認するには、以下のSQLコマンドを使用します。
\l
このコマンドは、PostgreSQLサーバ上の全データベースのリストを表示します。
以下が例です。
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+----------+----------+-------------+-------------+-----------------------
apidb | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres
blogdb | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
systemdb | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
新しく作成したデータベースがリストに表示されるはずです。
文字セットと照合順序の指定方法
こちらでは、「文字セットと照合順序の指定方法」について説明します。
- 使用可能な文字セットの一覧
- 文字セット指定時のデータベース作成方法
- 照合順序の設定方法
- 文字セットと照合順序設定の例
使用可能な文字セットの一覧
PostgreSQLは、多数の文字セットをサポートしています。
一般的なものだけでなく、特定の地域や言語を対象とした文字セットまで、さまざまな選択肢があります。
- UTF8
- ASCII
- ISO-8859-1 (Latin1)
- ISO-8859-2 (Latin2)
- ISO-8859-9 (Latin5)
- EUC_JP (Japanese)
- EUC_CN (Simplified Chinese)
- EUC_KR (Korean)
- EUC_TW (Traditional Chinese)
文字セット指定時のデータベース作成方法
データベース作成時に文字セットを指定するには、CREATE DATABASEコマンドのENCODINGキーワードを使用します。
以下がその例です。
CREATE DATABASE dbname WITH ENCODING='UTF8';
照合順序の設定方法
データベース作成時に照合順序を設定するには、LC_COLLATEとLC_CTYPEキーワードを使用します。
これらのキーワードは、文字列の比較と分類の方法を決定します。
- LC_COLLATE:文字の比較と並び替え(例えばORDER BY句)に影響を与えます
- LC_CTYPE:文字の分類(例えば正規表現)に影響を与えます
CREATE DATABASE mydb
LC_COLLATE 'ja_JP.UTF-8'
LC_CTYPE 'ja_JP.UTF-8';
文字セットと照合順序設定の例
以下は文字セットをUTF8にし、照合順序を日本語に設定したデータベースの作成例です。
CREATE DATABASE dbname WITH ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8';
データベース作成の実例
このセクションでは、「データベース作成の実例」について説明します。
- サンプルデータベースの作成
- パラメータ設定付きデータベースの作成
サンプルデータベースの作成
サンプルデータベースを作成するための基本的なコマンドは以下の通りです。
CREATE DATABASE sampledb;
これにより、名前が’sampledb’の新しいデータベースが作成されます。
パラメータ設定付きデータベースの作成
こちらは、パラメータを設定してデータベースを作成する例です。
エンコーディングをUTF8にし、照合順序と文字分類を日本語に設定します。
CREATE DATABASE sampledb WITH ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8';
これにより、指定したパラメータを使用して新しいデータベースが作成されます。
PostgreSQLの互換性とバージョン管理
このセクションでは、「PostgreSQLの互換性とバージョン管理」について説明します。
- 互換性に関する注意点
- PostgreSQLのバージョンアップとその方法
互換性に関する注意点
PostgreSQLの各バージョン間では、機能や性能に差があることを理解しておくことが重要です。
また、特定のバージョンで利用可能な機能が、他のバージョンでは利用できない、または動作が異なる可能性があります。
そのため、アプリケーションが特定のバージョンを必要とする場合、それに合わせてデータベースを管理することが求められます。
PostgreSQLのバージョンアップとその方法
PostgreSQLのバージョンアップは、主に新機能の利用や性能改善、セキュリティ対策のために行われます。
通常、バージョンアップにはpg_dumpを使用して既存のデータベースをバックアップし、新しいバージョンにアップグレードした後でデータを復元します。
また、より大規模なデータベースでは、pg_upgradeコマンドを使用してダウンタイムを最小限に抑えつつアップグレードを行うこともあります。
関連項目:PostgreSQLで役立つ他の機能
このセクションでは、「PostgreSQLで役立つ他の機能」について説明します。
- データベースの削除
- テーブルの作成と操作
- データのインポートとエクスポート
データベースの削除
データベースを削除するにはDROP DATABASEコマンドを使用します。
例えば、次のコマンドはmydbという名前のデータベースを削除します。
DROP DATABASE mydb;
ただし、このコマンドはデータベースに接続しているユーザーがいないときにしか実行できません。
テーブルの作成と操作
テーブルを作成するにはCREATE TABLEコマンドを使用します。
テーブルの構造を定義するために列名、データ型、および必要な制約を指定します。
- テーブルにデータを挿入する:INSERTコマンド
- データを更新する:UPDATEコマンド
- データを削除する:DELETEコマンド
- テーブルの内容を表示する:SELECTコマンド
データのインポートとエクスポート
データのインポートとエクスポートは、データベース管理の重要な部分です。
PostgreSQLでは、pg_dumpを使用してデータベース全体または特定のテーブルをバックアップし、そのバックアップを他のデータベースに復元できます。
COPYコマンドを使用して、特定のテーブルデータをCSV形式でエクスポートしたり、インポートしたりすることも可能です。
まとめ
当記事でお伝えしてきたことは以下のとおり。
- PostgreSQLの基本情報
- データベースの作成・管理方法
- PostgreSQLの役立つほかの機能
PostgreSQLは強力で柔軟性があり、さまざまな用途で使用できるオープンソースのデータベースシステムです。
その機能を最大限に活用するためには、常に最新の情報をキャッチアップし、自分のニーズに合わせて最適な操作方法を学んでいきましょう。
今後ともPostgreSQLが皆様のビジネスやプロジェクトに対する貴重なツールとなることを願っています。