みなさんこんにちは!
のむ(@nomu_engineer)です!
今回の記事では主キー制約についてまとめました。
プログラミング学習始めたばかりの方はこの意味がよくわからないなって思った方がいるのではないかなと思います。
なるべくわかりやすくまとめたので是非最後まで読んでみてください!
この記事を読むメリット
・PRIMARY KEYについて理解できる
・主キー制約について理解できる
この記事を読むおすすめの読者
・プログラミング初心者
・駆け出しエンジニア
それでは早速まとめていきます。
PRIMARY KEYとは??
それではまず、PRIMARY KEYについて説明していきたいと思います!
単刀直入にいうと、PRIMARY KEYはレコードは「id」のことです。
※必ずしもidがPRIMARY KEYになっているとは限りません。
PRIMARY KEY(id)についてまとめると、テーブルには多くのレコード(データ)が存在しており、さらに、一つ一つのレコードには複数のカラムが格納されています。
テーブルの中から、一つのレコードを特定するときに、カラムを検索することで特定できるのですが、このときに最も適したカラムに設定されているのがPRIMARY KEYです。
レコードの中のカラムの一つにPRIMARY KEYを設定することで、レコードの識別ができるようになるのです。
主キー制約を行うことで、PRIMARY KEY(id)の値が他のレコードと重複することができなくなります。
Ruby on Railsではデフォルトで、PRIMARY KEYがidになるようになってます。
id | 名前 | 都道府県 | 性別 |
1 | 田中 太郎 | 北海道 | 男 |
2 | 山田 花子 | 東京 | 女 |
3 | 田中 太郎 | 東京 | 男 |
4 | 近藤 花子 | 熊本 | 女 |
5 | 近藤 太郎 | 福岡 | 男 |
物凄い雑な表になっていますがお許しを。。。笑
上記の表は、テーブルにユーザー情報を保存してる状態です。
都道府県や性別のカラムの値は複数のレコードで重複してしまいますよね。
名前においても完全に同姓同名の人はやはり存在してきます。
それに対して、idは一人一人に番号が割り当てられています。
このように、他のデータと値が被ることがないカラムに対して、主キー制約(PRIMARY KEY制約)は設定することができます。
idを検索すれば、特定のユーザーの情報を取得することができます。
主キー制約とは??
主キー制約(PRIMARY KEY制約)については上記の説明にもパラパラ出てきたので、何となく理解している人もいるとは思いますが、簡単に説明させていただきます。
簡単にまとめると、主キー制約をすると、主キー制約に指定されたカラムは空になることがなく、他のレコードと重複することができなくなる制約のことです。
そして、Railsでテーブルを作成するときは、自動で主キー制約はidカラムとして作成されます。
プライマリーキーが設定されたカラムに対しては、自動的にインデックスが作成されます。
インデックスとは、指定したカラムのデータを取り出して、検索ようにまとめたもののことです。
そうすることで、テーブルのデータを毛作にかかる時間をえ減らすことができる優れものです。
主キー制約をid以外のものにすることもできますが、それはまた別の記事で書かせていただきます。
最後に
以上がPRIMARY KEYと主キー制約についてでした。
最後にまとめて終わりたいと思います。
PRIMARY KEY
・・・他のレコードと被ることがなく、データの検索に最も適したカラムのこと。
主キー制約
・・・指定したカラムは空になることがなく、他のレコードと重複することができなくなる制約のこと。
以上が主キー制約と、PRIMARY KEYについての説明になります。
知っておいて損はない知識だと思いますので、ぜひ覚えておきましょう!
ありがとうございました!