【PostgreSQL】CREATE DATABASEの基本・書き方

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年6月)

✔このような方へ向けて書かれた記事となります

「PostgreSQLでデータベースを作成する方法は?」
「”CREATE DATABASE”コマンドの使い方を知りたい」
「PostgreSQLでデータベースを作る簡単な実例が知りたい」

✔当記事を通じてお伝えすること

  • PostgreSQLのデータベース作成の基本
  • “CREATE DATABASE”コマンドの書き方とその応用
  • PostgreSQLでデータベースを作成する実例

当記事では、PostgreSQLでデータベースを作成する基本から、“CREATE DATABASE”コマンドを用いた応用的な使い方まで、具体例を交えて詳しく解説しています。

最後までお付き合いいただけると幸いです。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

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が皆様のビジネスやプロジェクトに対する貴重なツールとなることを願っています。

タイトルとURLをコピーしました