(最終更新日:2023年6月)
✔このような方へ向けて書かれた記事となります
「PostgreSQLでテーブルを作成する方法が知りたい」
「テーブル作成の構文やオプションを理解したい」
「PostgreSQLでのテーブル作成の具体例が見たい」
✔当記事を通じてお伝えすること
- PostgreSQLにおけるテーブル作成の基本
- CREATE TABLEコマンドの書き方やその応用
- PostgreSQLでのテーブル作成の実例
当記事では、PostgreSQLにおけるテーブル作成の基本から、CREATE TABLEコマンドの構文やオプションを活用した使い方まで、具体例を用いて詳しく解説しています。
ぜひ最後までご覧ください。
CREATE TABLEの基本概念
こちらでは、PostgreSQLでテーブルを作成するための基本的なコマンド「CREATE TABLE」の概念について解説します。
基本からご覧いただき、より実践的なコードへと進みましょう。
- PostgreSQLの基本概要
- 基本書式の解説
- スキーマを指定してテーブルを作成
- テーブル作成時の制約
PostgreSQLの基本概要
PostgreSQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)で、機能性と信頼性が評価されています。
ACID準拠のトランザクション、高度なクエリ最適化、豊富なデータ型を含む強力な機能を持つデータベースです。
以下のような代表的なデータベースのひとつとされています。
- PostgreSQL
- MySQL
- Oracle Database
SQLは共通で使えるものの、各データベースにより、コマンドが異なることは注意が必要です。
基本書式の解説
「CREATE TABLE」コマンドの基本書式はこちらです。
CREATE TABLE テーブル名 (列名 データ型 [制約], …);
テーブル名を指定した後、括弧内に列名、そのデータ型、そして任意の制約を指定します。
CREATE TABLE employees (id INT PRIMARY KEY, name TEXT, email VARCHAR(255));
この例では、”employees”という名前のテーブルを作成し、”id”、”name”、”email”という3つの列をそれぞれ異なるデータ型で定義しています。
スキーマを指定してテーブルを作成
スキーマを指定して、テーブルを作成することも可能です。
同じ名前のテーブルを、異なるスキーマ内で区別できます。
CREATE TABLE スキーマ名.テーブル名 (列名 データ型 [制約], …);
CREATE TABLE myschema.mytable (id INT PRIMARY KEY, name TEXT)";
ここでは”myschema”というスキーマ内に、”mytable”というテーブルを作成しています。
テーブル作成時の制約
テーブル作成時には、列に対してさまざまな制約を設けることができます。
- NOT NULL:NULL不可
- UNIQUE:ユニーク値
- PRIMARY KEY:主キー
CREATE TABLE students (id INT PRIMARY KEY, name TEXT NOT NULL, email VARCHAR(255) UNIQUE);
それぞれの列に対する制約を定義することができます。
PostgreSQLのテーブル一覧表示
テーブルを作成した後、その存在を確認するためには、PostgreSQLのコマンドラインから ‘dコマンド’ を使用します。
\d テーブル名
‘\d’ の後に何も指定しない場合は、データベース内のすべてのテーブルが表示されます。
以下はDjangoのデータベーステーブルの一部です。
public | account_emailaddress | table | postgres
public | account_emailaddress_id_seq | sequence | postgres
public | account_emailconfirmation | table | postgres
public | account_emailconfirmation_id_seq | sequence | postgres
public | accounts_accountprofile | table | postgres
public | accounts_accountprofile_id_seq | sequence | postgres
public | accounts_user | table | postgres
public | accounts_user_id_seq | sequence | postgres
public | auth_group | table | postgres
public | auth_group_id_seq | sequence | postgres
public | auth_group_permissions | table | postgres
public | auth_group_permissions_id_seq | sequence | postgres
public | auth_permission | table | postgres
テーブルの存在確認だけでなく、テーブルの構造や設定されている制約を確認する際にも非常に役立つコマンドです。
必要なソフトウェアの準備
PostgreSQLを利用するために必要なソフトウェアの準備について詳しく解説します。
実際に使えるようにするために、ひとつずつ進めていきましょう。
- PostgreSQLのインストール
- pgAdminのインストール
- コマンドプロンプト(コンソール)の使い方
PostgreSQLのインストール
まずはPostgreSQLのインストールから始めましょう。
PostgreSQLの公式ウェブサイトからダウンロードできます。
インストーラーはWindows、Linux、MacOS向けにそれぞれ提供されており、適切なものを選んでダウンロード。
ダウンロードしたインストーラーを実行し、指示に従ってインストールを進めてください。
インストールが完了したら、コマンドプロンプトから ‘psql’ と入力してPostgreSQLが正常にインストールされたことを確認しましょう。
pgAdminのインストール
次に、データベース管理ツールであるpgAdminをインストールします。
pgAdminを使うと、GUIを通じてデータベースの操作が可能になり、SQLコマンドの知識がなくてもテーブル作成などの基本的な操作をおこなえます。
手順は以下の通りです。
- pgAdminの公式ウェブサイトから最新バージョンをダウンロード
- インストーラを実行してインストール
- pgAdminを起動
- 左側のペインからPostgreSQLサーバを選択して接続
データベース名やユーザ名、パスワードなどの情報を入力すれば完了です。
コマンドプロンプト(コンソール)の使い方
PostgreSQLを使うためには、コマンドプロンプト(コンソール)の使い方も理解しておくと便利です。
Windowsの場合、スタートメニューからコマンドプロンプトを検索して起動します。
MacやLinuxの場合は、ターミナルを使用します。
コマンドプロンプトでは、’psql’ コマンドを使ってPostgreSQLに接続し、SQLコマンドを実行してデータベースを操作します。
psql -U ユーザ名 -d データベース名;
指定したユーザ名とデータベースでPostgreSQLに接続します。
テーブルの操作
PostgreSQLでのテーブル操作について解説します。
テーブルを作るためにさまざまな設定をしていきましょう。
- テーブルの作成(CREATE TABLE)
- データ型の選択とカラムを定義
- レコードの追加(INSERT INTO)
- SQLファイルでまとめてデータ追加
テーブルの作成(CREATE TABLE)
テーブルの作成は、’CREATE TABLE’ コマンドを使用します。
CREATE TABLE テーブル名 (カラム名 データ型);’
例えば名前(name)と年齢(age)を持つユーザーテーブルを作成する場合、以下のようなコマンドになります。
CREATE TABLE users (name TEXT, age INTEGER);
このコマンドを実行すると、usersという名前のテーブルが作成され、nameとageという2つのカラムが定義されます。
データ型の選択とカラムを定義
テーブル作成時には、各カラムのデータ型も指定します。
PostgreSQLで使える主なデータ型は以下のとおり。
- TEXT:任意の長さの文字列
- INTEGER:整数
- REAL:浮動小数点数
- BOOLEAN:真偽値
これらのデータ型を適切に選択することで、データベースの効率とデータの整合性を保つことが可能です。
レコードの追加(INSERT INTO)
テーブルが作成され、カラムが定義されたら、次はデータ(レコード)の追加です。
これには’INSERT INTO’コマンドを使用します。
INSERT INTO テーブル名 (カラム名1, カラム名2) VALUES (値1, 値2);
こちらは例です。
INSERT INTO users (name, age) VALUES ('John', 25);'。
このコマンドを実行すると、usersテーブルに新しいレコードが追加されます。
SQLファイルでまとめてデータ追加
SQLコマンドをまとめたファイルから、一度に多くのデータを追加できます。
なぜその必要があるかというと、大量のデータをひとつずつ手打ちするのは時間がかかるからです。
SQLファイルはテキストファイルで、一行に一つのSQLコマンドを記述します。
準備ができたら以下を実行しましょう。
psql -f ファイル名.sql
コマンドでSQLファイルを実行します。
pgAdminでテーブル作成
このセクションでは、pgAdminを使用したテーブルの作成方法について解説します。
pgAdminのGUIを使えば、SQLの知識が少なくてもさまざまな操作ができます。
- サーバーとデータベース選択
- テーブル作成ウィザード利用
- カラム、制約追加
- テーブル保存、確認
サーバーとデータベース選択
pgAdminを開くと、左側にサーバーリストが表示されます。
リストから接続したいサーバーを選択し、接続します。
その後、データベースリストから操作したいデータベースを選択しましょう。
これにより、選択したデータベースでの操作が可能になるのです。
テーブル作成ウィザード利用
データベースを選択したら、テーブル作成ウィザードを利用してテーブルを作成します。
- “Tables”を右クリック
- “Create”を選択
- “Table…”を選択
- ウィザードが開始
ここでテーブル名を入力し、”Columns”タブでカラムを追加します。
カラム、制約追加
カラムを追加するには、”Columns”タブで”+Column”をクリックします。
新たな行が作成され、以下が設定できるのです。
- カラム名
- データ型
- 長さ
また、制約を追加したい場合は、”Constraints”タブで”+Check”, “+Unique”, “+Foreign Key”などを選択して制約を追加します。
テーブル保存、確認
すべての設定が完了したら、”Save”ボタンをクリックしてテーブルを保存しましょう。
保存後、”Tables”リストをリフレッシュすると、新たに作成したテーブルがリストに表示されます。
テーブルの削除、リレーション設定
このセクションでは、テーブルの削除とリレーション(テーブル間の関連付け)の設定方法について解説します。
- DROP TABLEコマンド
- リレーション設定方法
DROP TABLEコマンド
テーブルを削除するには、DROP TABLEコマンドを使用します。
“DROP TABLE テーブル名;
テーブルを削除すると、そのテーブルに格納されていたすべてのデータも一緒に削除されますので、十分注意が必要です。
リレーション設定方法
リレーションは、異なるテーブル間の関連性を定義するもので、データベースの構造を効率的かつ効果的に管理するのに役立ちます。
具体的には、FOREIGN KEY制約を使ってリレーションを設定します。
“orders”テーブルの”customer_id”列と”customers”テーブルの”id”列を関連付け、”orders”テーブルを作成してみましょう。
CREATE TABLE orders (
order_id serial PRIMARY KEY,
customer_id integer,
order_date date,
FOREIGN KEY (customer_id) REFERENCES customers (id)
);
まとめ
当記事でお伝えしてきたことは以下の通り。
- テーブル作成のコマンドは、CREATE TABLE …
- テーブル一覧を表示する方法は、\d テーブル名
- PostgreSQLを扱うなら、pgAdminなどのソフトウェアも使える
PostgreSQLは、RDBMSの中でも主要といわれるもののひとつ。
SQLについて学べば、その知識は種類問わず活かせるものもの多いです。
ただしPostgreSQLならではのものもあるので、その違いを理解することも必要。
いろいろと触りながら、使いこなしていきましょう。