【MySQL】キーの種類と機能の解説

mysqlMySQL
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではMySQLで使えるキーの種類とその機能についての解説ページになります。データベースやテーブルの作成時に指定することもできますが、後から指定することもできます。それぞれのキーの機能を紹介するのでそれぞれ適したキーを使っていきましょう。

キーとNULLと一意

キーは簡単にいえばカラムに対して設定する目印みたいなものです。このキーは基本的には「一意の値」である必要があります。一意とは「そのテーブル中に同じ値を設定することができない」という意味になります。この設定できないのはキーに設定したカラムに対してだけなので、例えばキー設定していないカラムに同じ数字を入れることは可能です。

カラム1(PRIMARY)カラム2(UNIQUE)カラム3(キー未設定)
113
223

仮にこのようなカラム1、カラム2、カラム3があったとします。カラム1にPRIMARY、カラム2にUNIQUEを設定したとします。このカラム1と2はそれぞれ一意の値しか設定できないため、それぞれ「カラム1の1と、カラム2の1」という感じで識別します。そしてその下は「カラム1の2と、カラム2の2」という感じで識別します。そして何もキーを設定していないカラム3は同じ値が入力されていても問題ありません。

そしてそれぞれのキーに対してNULLという特別なものが設定できたりできなかったりします。NULLは「値がない」みたいな感じの扱いとなります。これは数字の0ではなく、本当の意味で値が無いという意味になります。このNULLが設定出来るキーとできないキーがあります。それについてはそれぞれのキー解説で紹介します。

PRIMARYキー

別名は主キーと言ったりします。これはテーブル内に1つのみ設定可能です。そしてこの主キーにはNULLを設定できません。1つのテーブル内の複数カラムにPRIMARYキーを設定したのが以下の画像です。見ての通り、NULLが「いいえ」となっていて、設定することができないことが明記されています。ちなみに下のように3カラムに対してPRIMARY設定した場合は「3つまとめて一意である」必要があります。

primaryキーとnull

あとからnullのようにテキストとして入力するのは可能ですが、デフォルト値をNULLにすることは不可能です。

UNIQUEキー

ユニークキーと呼ばれるものです。これもPRIMARYキーと同じく各テーブルの複数カラムに幾つでも設定できます。PRIMARYキーと違う点はNULLを格納出来る点です。以下は2カラムにユニーク設定をし、etcカラムを変更してデフォルト値のNULLを許可しています。

ユニークキーとnull

INDEXキー

インデックスキーは上記の2つと違い、検索を早くするために特化したものです。これは一意とかそういうのは一切関係ありません。とにかく検索の処理速度を速くしたい場合に特定のカラムにインデックスを付与します。そうすると検索する時にインデックスを元に検索順序を再構築して検索します。

インデックスがないとMySQLの検索は1行ずつ確認していき、該当の場所かどうかを確認します。簡単にいえばWHERE句で検索するときに爆速で探し出せます。

キーのまとめ

キーはそれぞれ固有の値を持っているものと、検索を高速にする機能を持っていたりします。それぞれ用途に応じて使い分けましょう。

MySQLの用語集
MySQLでよく使う・よく見る用語集です。知っておくと検索とかも便利になります。
ローカル環境の整え方
MAMPを使ってローカル環境を整える方法を紹介。
MySQLデータベースに接続する方法
MAMPのデータベースと、レンタルサーバーのデータベースに接続する方法
MySQLの基本コマンド
MySQLへ接続してまず使う基本コマンドの一覧です。
データベースの作成
ターミナル・phpMyAdminでのデータベースの作成方法をそれぞれ解説。
テーブルの作成
ターミナル・phpMyAdminのそれぞれでテーブルを作成する方法と、作成と同時にPRIMARYやUNIQUEの付与などの方法を紹介。
キーの種類と機能
カラムに設定出来るキーの種類と機能を解説。
正規化
リレーショナルデータベースを使う上で必須となる正規化について。データの追加や更新などで手間を省く方法としても使えます。
ALTER TABLE
ALTER TABLE構文を使って作成済みのテーブルに対して操作を行う。PRIMARYの付与やカラムの移動・名前変更・追加・削除なども行えます。
INSERT構文
INSERT構文を使って指定テーブルにデータ(行)を挿入する方法の解説です。
UPDATE構文
UPDATE構文を使って指定テーブルのカラムを一括更新、もしくは指定レコードの指定カラムのみを更新する方法の解説です。
SELECT構文
SELECT構文を使って指定したテーブルからデータを取得する方法の解説です。
JOIN
JOINを使ってテーブル同士を結合する方法の解説です。
タイトルとURLをコピーしました