第2章/全8章 ・ 目安 4分

テーブルの読み方

行・列・主キーという3つの言葉

テーブル・行・列

リレーショナルデータベースでは、データを テーブル(表)に入れます。下は、このサイトで使う「取引先」のテーブル customers です。

id取引先IDname取引先名region地域
C001北山商事福岡
C002南浜工業大阪
C003東雲フーズ東京
C004西原物産福岡
customers テーブル(教材用サンプル)。1行が1社、1列が1つの項目です。
  • 行(レコードとも呼びます):1件分のデータ。ここでは「1社」です。
  • 列(カラムとも呼びます):項目。ここでは「ID」「名前」「地域」の3つです。

見た目は表計算ソフトとほとんど同じです。違うのは、列ごとに入れてよいものが決まっていることです。

列には「型」がある

データベースでは、テーブルを作るときに、列ごとに データ型(入れてよい値の種類)を決めます。

  • 金額の列は「整数」:120000 は入るが、12万円 は入らない
  • 請求日の列は「日付」:2026-09-05 は入るが、9月上旬 は入らない
  • 名前の列は「文字列」:長さの上限を決めることもある

表計算ソフトでは、同じ列に「120000」と「12万円」が混ざっていて合計が合わない、ということがよく起きます。データベースは入口で断るので、後から集計するときに困りません。

主キー:行を1つに決める目印

テーブルのどの行かを必ず1つに決められる列を 主キー(プライマリーキー)と呼びます。customers では id が主キーです。主キーには2つの約束があります。

  1. 同じ値を二度使えない(重複しない)
  2. 空っぽにできない(必ず値がある)

「会社名で区別すればよいのでは」と思うかもしれません。しかし、会社名は変わることがあり、別の地域に同じ名前の会社があることもあります。だから、意味を持たない番号を主キーにするのが一般的です。社員番号や請求番号と同じ考え方です。

値がないことを表す NULL

まだ決まっていない、分からない、という「値がない」状態を NULL(ヌル)と呼びます。NULL は 0 とも、空の文字とも違います。「金額 0円」と「金額が未定」は意味が違うからです。集計のときに NULL の行が数えられているかどうかは、よく確認が必要になる点です。

考えてみよう:請求書のテーブルで、主キーにふさわしい列は?

請求書のテーブル invoices には「請求番号・取引先ID・請求日・金額・状態」の列があります。

答え:請求番号(invoice_no)です。取引先IDは同じ会社への請求が何件もあるので重複します。請求日や金額も、同じ値の請求が別にありえます。請求番号だけが、1件の請求を必ず1つに決められます。

この章のポイント
  • テーブル=表、行=1件、列=項目
  • 列には型があり、合わない値は入口で断られる
  • 主キーは、重複せず空にならない「行の目印」。意味を持たない番号を使うことが多い