テーブル・行・列
リレーショナルデータベースでは、データを テーブル(表)に入れます。下は、このサイトで使う「取引先」のテーブル customers です。
| id取引先ID | name取引先名 | region地域 |
|---|---|---|
| C001 | 北山商事 | 福岡 |
| C002 | 南浜工業 | 大阪 |
| C003 | 東雲フーズ | 東京 |
| C004 | 西原物産 | 福岡 |
- 行(レコードとも呼びます):1件分のデータ。ここでは「1社」です。
- 列(カラムとも呼びます):項目。ここでは「ID」「名前」「地域」の3つです。
見た目は表計算ソフトとほとんど同じです。違うのは、列ごとに入れてよいものが決まっていることです。
列には「型」がある
データベースでは、テーブルを作るときに、列ごとに データ型(入れてよい値の種類)を決めます。
- 金額の列は「整数」:
120000は入るが、12万円は入らない - 請求日の列は「日付」:
2026-09-05は入るが、9月上旬は入らない - 名前の列は「文字列」:長さの上限を決めることもある
表計算ソフトでは、同じ列に「120000」と「12万円」が混ざっていて合計が合わない、ということがよく起きます。データベースは入口で断るので、後から集計するときに困りません。
主キー:行を1つに決める目印
テーブルのどの行かを必ず1つに決められる列を 主キー(プライマリーキー)と呼びます。customers では id が主キーです。主キーには2つの約束があります。
- 同じ値を二度使えない(重複しない)
- 空っぽにできない(必ず値がある)
「会社名で区別すればよいのでは」と思うかもしれません。しかし、会社名は変わることがあり、別の地域に同じ名前の会社があることもあります。だから、意味を持たない番号を主キーにするのが一般的です。社員番号や請求番号と同じ考え方です。
値がないことを表す NULL
まだ決まっていない、分からない、という「値がない」状態を NULL(ヌル)と呼びます。NULL は 0 とも、空の文字とも違います。「金額 0円」と「金額が未定」は意味が違うからです。集計のときに NULL の行が数えられているかどうかは、よく確認が必要になる点です。
考えてみよう:請求書のテーブルで、主キーにふさわしい列は?
請求書のテーブル invoices には「請求番号・取引先ID・請求日・金額・状態」の列があります。
答え:請求番号(invoice_no)です。取引先IDは同じ会社への請求が何件もあるので重複します。請求日や金額も、同じ値の請求が別にありえます。請求番号だけが、1件の請求を必ず1つに決められます。
- テーブル=表、行=1件、列=項目
- 列には型があり、合わない値は入口で断られる
- 主キーは、重複せず空にならない「行の目印」。意味を持たない番号を使うことが多い