テーブル・行・列・主キーとは:リレーショナルデータベースの見方

入門 | 9分 で読める | 2026.06.17

公式ドキュメント

SQLを理解するには、まずデータベースを「表」として見る感覚が必要です。リレーショナルデータベースでは、多くのデータをテーブル、行、列に分けて管理します。

一言でいうと

リレーショナルデータベースは、データを表に分け、主キーと外部キーで表同士の関係を表します。

登場人物

用語意味
テーブル同じ種類のデータを入れる表
1件分のデータ
データの項目
主キー行を一意に識別する値
外部キー別テーブルの行を参照する値

たとえば、ユーザーを管理する users テーブルは次のように考えます。

idnameemail
1Satosato@example.com
2Suzukisuzuki@example.com

この表では、1行が1人のユーザーです。idnameemail が列です。

テーブルとは

テーブルは、同じ種類のデータをまとめる場所です。

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  email TEXT NOT NULL
);

このSQLは、ユーザー用のテーブルを作ります。

役割
idユーザーを識別する番号
name表示名
emailメールアドレス

テーブルは「何でも入れる箱」ではなく、同じ種類のデータだけを入れる表です。

行とは

行は、テーブルの中に入る1件分のデータです。

INSERT INTO users (id, name, email)
VALUES (1, 'Sato', 'sato@example.com');

このSQLで、users テーブルに1人分のユーザー情報が入ります。

列とは

列は、各行が持つ項目です。列には、文字列、数値、日時、真偽値などの型を決めます。

CREATE TABLE tasks (
  id INTEGER PRIMARY KEY,
  title TEXT NOT NULL,
  done BOOLEAN NOT NULL DEFAULT false,
  created_at TIMESTAMP NOT NULL
);

列の設計は、後からSQLの書きやすさに大きく影響します。たとえば、done を文字列の "yes" / "no" で持つより、BOOLEAN で持つ方が条件検索しやすくなります。

主キーとは

主キーは、テーブル内の1行を一意に識別する値です。

SELECT *
FROM users
WHERE id = 1;

id = 1 と指定すれば、特定のユーザー1人を見つけられます。

主キーには、次の性質があります。

性質説明
一意同じ値が重複しない
NULL不可空の値にしない
参照しやすい他のテーブルから指定できる

外部キーとは

外部キーは、別のテーブルの主キーを参照する列です。たとえば、注文をユーザーに結びつけるには、orders テーブルに user_id を持たせます。

CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  user_id INTEGER NOT NULL REFERENCES users(id),
  total INTEGER NOT NULL
);

この user_id によって、「この注文はどのユーザーのものか」を表せます。

複数テーブルの関係は、主キーと外部キーを使って表します。

よくある誤解

誤解実際
1つの大きな表に全部入れればよい重複や不整合が起きやすくなります
id はなくてもよい行を特定しにくくなります
外部キーはJOINのためだけにあるデータの整合性を守る役割もあります
列名は適当でよいSQLの読みやすさに直結します

まとめ

リレーショナルデータベースは、テーブル、行、列でデータを整理します。主キーは1行を識別する値で、外部キーは別テーブルとの関係を表します。SQLを学ぶ前に、この表の見方を押さえると、SELECTやJOINが理解しやすくなります。

参考リソース

← 一覧に戻る
PR
PR
PR
PR