パソコン・スマホの困ったを助けます!
SQL

[SQL初心者へ]制約とは?~primary key,not null,unique,check~

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の音ってもう少し小さくならないかな

その方法はこちらにあり

あわせて読みたい
iPhoneの音量をもっと小さくする3つの方法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)」と出てきましたね。

これは何?と思ったあなたはこちらを見てください。

あわせて読みたい
[SQL]データ型、固定長と可変長、「'」の意味テーブルの列を追加したり、削除によく使われるSQLのデータ型。 その種類や使い方を解説します。 また「'」や「VAL...
あわせて読みたい
【SQL初心者へ】テーブルにデータを追加する、削除する~insert,delete~SQLでテーブルにデータを追加する、削除する方法を解説していきます。 例えば テーブル名:birthday ...

 

そしてさりげなく出てきた

「default “不明”」「default」と設定して置くと

制約外のデータが入る時は「””」内で指定したデータが入るようになります。

 

なので上記のSQL文では日付がnullになりそうな時は「不明」が入ります。

 

上記のように4つの制約を入れました。

制約は大体一番最後にくっ付くのですね。

ちなみに上記のSQL文では

 

テーブル名:プレゼント

商品ID 日付 商品名 金額

 

というようなデータが何も入っていないテーブルが完成します。

 

まとめ

制約や主キーについて解説しました。

これでテーブルが作成できますね。

この記事が良かった!というあなたはTwitterのフォローをお願いします!

ABOUT ME
アバター
TANSAN
某パソコンショップ店員がパソコン・スマホで困った!という悩みを解決していきます。 ITパスポートの攻略法も随時更新中! PC・スマホで困ったことがあればTwitterのDMまで! 名前の由来は炭酸水が好きなので、でも間違えないでください 私の炭酸水好きは炭酸水が騒がれ始める10年も前から好きなんです。 サイト作りのコンセプトは「赤ちゃんでもパソコン・スマホの設定できるわかりやすいサイト作り」です。 私TANSANとUseful Labどっちもよろしく!!