【MySQL】キー(Key)は何のために利用するのか?

MySQL

MySQLにおける「キー」とは、テーブル内のデータを効率的に管理、検索、結合、制約を設けるために使用される特定の列(または複数列)のことを指します。キーにはいくつか種類があり、それぞれ異なる役割を持っています。以下に主要なキーの種類とその意味を説明します。

1. 主キー(Primary Key)

  • 意味
    テーブル内の各行を一意に識別するためのキーです。
  • 特徴
    ・主キーの値は一意でなければならず、NULLは許可されません。
    ・通常、テーブルごとに1つの主キーを設定します。

  • idカラムを主キーとして設定することで、idの値がテーブル内で重複しないようになります。
CREATE TABLE example_table (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

2. 外部キー(Foreign Key)

  • 意味
    他のテーブルの主キーやユニークキーを参照し、2つのテーブル間の関係を維持するためのキーです。
  • 特徴
    リレーショナルデータベースでデータの整合性を保つために使用します。

  • ordersテーブルのcustomer_idカラムがcustomersテーブルのidカラムを参照する。
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

3. ユニークキー(Unique Key)

  • 意味
    テーブル内の特定の列の値が一意であることを保証するキーです。
  • 特徴
    ・主キーと似ていますが、複数設定できます。
    ・NULL値は1つ許可されます。

  • emailカラムをユニークキーとして設定し、重複するメールアドレスを登録できないようにする。
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE
);

4. インデックスキー(Index Key)

  • 意味
    データベース内の検索やクエリの実行を高速化するために使用されるキーです。
  • 特徴
    テーブルの1つまたは複数の列にインデックスを設定し、検索やソートを効率化します。

  • nameカラムにインデックスを設定し、nameでの検索を高速化。
CREATE INDEX idx_name ON example_table(name);

5. 複合キー(Composite Key)

  • 意味
    2つ以上のカラムを組み合わせて1つのキーとし、それらの組み合わせで一意性を保証するキーです。
  • 特徴
    単一カラムでは一意性を保証できない場合に使用されます。

  • order_idproduct_idを組み合わせて複合キーにする。
CREATE TABLE order_details (
    order_id INT,
    product_id INT,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

まとめ

  • 主キー: 一意でNULLを許可しない。
  • 外部キー: 他のテーブルとのリレーションを作る。
  • ユニークキー: 値の一意性を保証し、NULLは1つ許可。
  • インデックスキー: 検索の高速化のために使用。
  • 複合キー: 複数カラムの組み合わせで一意性を保証。

MySQLで「キー」はデータの整合性を保ち、効率的にデータを操作するための非常に重要な要素です。

著者プロフィール
この記事を書いた人
ロジャー

Webアプリ開発を20年近く経験し、管理職なった今も時々ソースをいじるメインは営業職の管理者。もうすぐ40代。最近は、AIを活用して少しでも仕事やプライベートを面白くしていきたいと考えているおっさんです。困った事もAIなら解決してくれるはず!?

ロジャーをフォローする
MySQLシステム開発
ロジャーをフォローする
タイトルとURLをコピーしました