SQLで列を定義するときなどに見る「primary key」
これは主キー制約と呼ばれるもので
テーブルを制約するものである。
しかし主キー制約?制約って何もの?と思ったあなた。
これから主キーを含め「制約」について解説します。
「not null」「unique」「check」加えて「primary key」の
4つの制約を紹介します。
制約とは?
SQL等で扱うデータベースは情報の根源です。
例えばそのテーブルに定義していないような
大きな容量を持った数字が入力されます。
するとその想定していないようなデータをテーブルに組み込もうとして
テーブルの反応速度が遅くなったり、エラーが表示されたりと
異常事態が発生します。
もしデータベースを活用した通販サイトが動いている中で
そのような異常事態が起こった場合、、、。
それを守るのが「制約」です。
事前にテーブルにはそのデータが入らないようにしたり
データが0にならないようにしたりと
制限をかけることを「制約」が行ってくれます。
では制約のことがつかめたので実際に見ていきましょう。
制約たち~not null,unique,check~
では実際にどんな制約があるのかを見ます。
ここでは「not null」「unique」「check」の3つを紹介します。
not null制約
not null制約とは見ての通り
nullにはならないようにする制約です。
絶対にnullになってはいけない列に使います。
例えば「日付」その列でnullはありえません。
なのでnot null制約をかけることで
nullになってしまう定義をするとエラーを出してくれます。
使用例はprimary keyを含め全て紹介した後に見せます。
unique制約 読み方はユニーク
このunique制約は列の中でデータが重複しないようにする制約です。
例えば47都道府県の列は重複があってはダメですよね。
東京が2つあって沖縄が5つあったり。
その場合にunique制約が使われます。
iPhoneの音ってもう少し小さくならないかな
その方法はこちらにあり
check制約
テーブルに格納されるデータが妥当かどうかを判断してくれるのが
「check制約」です。
実際にcheck制約は
check(列名 >= 数字等)
と使われます。不等号は自由です。
例えばcheck(収入 >= 0)と入力すると
収入の列で0以上の値しか入らないとなります。
収入で「ー」はブラックですね。
とそのように使われます。
以上が3つの制約です。
次はprimary key、主キー制約を解説します。
主キーって何?主キー制約とは?
まず主キーとはなんでしょう。
主キーとはテーブルの柱となる列のことを言います。
例えば商品IDなどSQLで検索をするときに
その「商品ID列の何番目の商品名列のそのデータ」
のようにその列名を基準にデータを見ます。
例えば今のをSQL文にすると
select 商品名 from テーブル名 where 商品ID = P05;
と商品IDのP05番目に当たる列名商品名のデータが表示されます。
このようにテーブルの中で柱になる列のことを主キーと言います。
そしてその列名を主キーに制約することを「主キー制約」と言います
では4つの制約を使った例を出します。
制約を実際に使ってみる
このSQL文ではテーブルを作成しようとしています。
そこで主キー制約を含め4つの制約を使ってみます。
create table プレゼント{
商品ID integer primary key,
日付 date default “不明” not null,
商品名 varchar(20) unique,
金額 integer check(金額 >= 0)
);
と実際に使ってみました。
いきなり「create table」だの
「integer, varchar(20)」と出てきましたね。
これは何?と思ったあなたはこちらを見てください。
そしてさりげなく出てきた
「default “不明”」は「default」と設定して置くと
制約外のデータが入る時は「””」内で指定したデータが入るようになります。
なので上記のSQL文では日付がnullになりそうな時は「不明」が入ります。
上記のように4つの制約を入れました。
制約は大体一番最後にくっ付くのですね。
ちなみに上記のSQL文では
テーブル名:プレゼント
商品ID | 日付 | 商品名 | 金額 |
というようなデータが何も入っていないテーブルが完成します。
まとめ
制約や主キーについて解説しました。
これでテーブルが作成できますね。
この記事が良かった!というあなたはTwitterのフォローをお願いします!