PostgreSQL初心者ガイド!テーブル作成の基本手順とSQLの書き方を徹底解説
生徒
「データベースのPostgreSQL(ポストグレスキューエル)を使い始めたいのですが、最初に何を作ればいいんですか?」
先生
「まずはデータを整理して入れるための『テーブル』を作ることから始めましょう。Excel(エクセル)でいうところの『シート』を新しく作るようなイメージです。」
生徒
「テーブルを作るのって、プログラミングの知識がない私でもできますか?」
先生
「もちろんです。SQLという命令文を一度覚えれば、誰でも簡単に情報の入れ物を作ることができますよ。ルールを一つずつ丁寧に見ていきましょう。」
1. SQLとは何か?
SQL(エスキューエル)は、データベースと呼ばれる「大量のデータを整理して保存する箱」に対して指示を出すための言語です。例えば、お店の顧客名簿の中から特定の人を探したり、新しい注文情報を追加したりするときに使います。
PostgreSQL(ポストグレスキューエル)は、このSQLを使って操作するデータベース管理システムの一つです。世界中で使われている非常に安定したシステムで、無料で誰でも使い始めることができます。初心者の方がまず覚えるべきは、データを保存する形式を決める「テーブルの作成」です。
2. テーブルとは「整理整頓された表」のこと
データベースの中にデータを入れるとき、バラバラに放り込むわけではありません。必ず「テーブル」という表の形式にして保存します。このテーブルは、学校の出席簿やスーパーの在庫リストのようなものだと考えてください。
テーブルには「カラム(列)」と「レコード(行)」という概念があります。
- カラム(列): 「名前」「年齢」「電話番号」といった、情報の項目のことです。
- レコード(行): 実際に登録された一人ひとりのデータのことです。
例えば、これから「ユーザー情報を管理するテーブル」を作るとしましょう。その際、まずは「どんな項目(カラム)が必要か」をパソコンに教えてあげる必要があります。これがテーブル作成の第一歩です。
3. データの種類「データ型」を理解しよう
テーブルの項目(カラム)を決めるとき、もう一つ大事なことがあります。それは、その項目に「どんな種類のデータ」が入るのかをあらかじめ決めておくことです。これを「データ型」と呼びます。
なぜこれを決める必要があるのでしょうか?例えば、年齢を入れる場所に「こんにちは」という文字が入ってしまったら、後で計算ができなくて困りますよね。そういった間違いを防ぐために、あらかじめルールを決めておくのです。
| データ型 | 説明 | 使い道の例 |
|---|---|---|
| INTEGER(インテジャー) | 整数(数字) | 年齢、個数、ID番号 |
| VARCHAR(バーキャラ) | 文字(長さ制限あり) | 名前、メールアドレス |
| TEXT(テキスト) | 長い文章 | お問い合わせ内容、備考 |
| BOOLEAN(ブーリアン) | はい/いいえ | 会員かどうか、削除フラグ |
4. 実際にテーブルを作ってみよう(CREATE TABLE)
それでは、PostgreSQLで実際にテーブルを作成する命令文を書いてみましょう。テーブルを作るには CREATE TABLE という命令を使います。
まずは、会員制サイトの「会員名簿(members)」テーブルを作ってみる例です。項目として「会員番号」「名前」「年齢」「メールアドレス」を用意します。
CREATE TABLE members (
id INTEGER,
name VARCHAR(100),
age INTEGER,
email VARCHAR(200)
);
この命令を出すと、まだ中身は空っぽですが、データの入れ物(枠組み)ができあがります。作成直後の状態は以下のようになります。
id | name | age | email
---+------+-----+------
(0 行)
次に、このテーブルにデータを追加してみましょう。データを追加するには INSERT INTO という命令を使います。ここでは4人分のデータを登録してみます。
INSERT INTO members (id, name, age, email) VALUES (1, '山田太郎', 25, 'taro@example.com');
INSERT INTO members (id, name, age, email) VALUES (2, '佐藤花子', 19, 'hanako@example.com');
INSERT INTO members (id, name, age, email) VALUES (3, '鈴木一郎', 30, 'ichiro@example.com');
INSERT INTO members (id, name, age, email) VALUES (4, '田中愛', 22, 'ai@example.com');
実行した後のテーブルの中身を確認すると、以下のようになります。
id | name | age | email
---+----------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 田中愛 | 22 | ai@example.com
5. 制約(ルール)を追加してより使いやすく
先ほどのテーブル作成では、最低限の項目だけを決めました。しかし、実際の運用では「名前は必ず入力してほしい」「会員番号が重なってはいけない」といった細かいルールが必要になります。これを「制約(せいやく)」と呼びます。
特によく使われるのが「PRIMARY KEY(主キー)」です。これは、そのデータが世界に一つだけであることを保証する印です。出席簿の「出席番号」のようなものですね。
今度は、商品の在庫を管理する「products」テーブルを、制約付きで作ってみましょう。
CREATE TABLE products (
product_id INTEGER PRIMARY KEY, -- 重複を許さない主キー
product_name VARCHAR(100) NOT NULL, -- 空っぽ(空欄)を許さない
price INTEGER,
stock_quantity INTEGER DEFAULT 0 -- 何も入力されないときは0にする
);
このテーブルにデータをいくつか入れてみます。
INSERT INTO products (product_id, product_name, price, stock_quantity) VALUES (101, 'ノートパソコン', 120000, 5);
INSERT INTO products (product_id, product_name, price, stock_quantity) VALUES (102, 'ワイヤレスマウス', 3500, 15);
INSERT INTO products (product_id, product_name, price, stock_quantity) VALUES (103, 'USBメモリ', 1500, 50);
INSERT INTO products (product_id, product_name, price, stock_quantity) VALUES (104, 'モニター', 25000, 8);
INSERT INTO products (product_id, product_name, price, stock_quantity) VALUES (105, 'キーボード', 7000, 12);
実行後のテーブルの状態です。
product_id | product_name | price | stock_quantity
-----------+------------------+--------+----------------
101 | ノートパソコン | 120000 | 5
102 | ワイヤレスマウス | 3500 | 15
103 | USBメモリ | 1500 | 50
104 | モニター | 25000 | 8
105 | キーボード | 7000 | 12
6. 作成したテーブルを確認・削除する方法
テーブルを作った後、「どんな項目で作ったっけ?」と確認したくなることがあります。PostgreSQLの操作画面(psqlなど)では、特別なコマンドを使って情報を呼び出すことができます。
また、もし間違えて作ってしまったり、もう使わなくなったりしたテーブルを消したいときは DROP TABLE という命令を使います。これは、机の上にある書類をシュレッダーにかけるようなものです。一度消すとデータもすべて消えてしまうので、とても慎重に行う必要があります。
-- テーブルの名前や設定を確認する(psqlの場合)
-- \d members
-- テーブルそのものを完全に削除する
DROP TABLE members;
削除する前の「members」テーブルにはデータが入っていましたが、この命令を実行した後は、箱ごとなくなってしまいます。
id | name | age | email
---+----------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
(削除を実行すると、これらのデータもすべて消去されます)
このように、PostgreSQLでは「箱を作る(CREATE)」「中身を入れる(INSERT)」「箱を捨てる(DROP)」という流れをSQLという言葉でコントロールしていきます。パソコンの操作に慣れていない方でも、英単語の意味を考えながら進めれば、決して難しいものではありません。
データベースをマスターするための第一歩は、まず自分の手で小さなテーブルを作成し、そこにデータが入る喜びを体験することです。今日学んだ基本の形を何度も練習して、データの扱い方に慣れていきましょう。