SQL Server の制約

SQL Server の制約とは?

制約とは、テーブル内のデータに対するルールのようなもので、制約に沿わないデータを保存しようとした場合は SQL Server がエラーを出します。


テーブル内のデータを、期待通りの正しい状態に保つためには、いろいろな方法があります。

データベースをただの入れ物のようにつかって、クライアントプログラムで制御する方法もあると思います。

私の意見としては、データベースにつけられる制約はできるだけつけるべきだと、強く思っています。

制約がきちんとついていると、間違ったデータを保存しようとしたり、削除しようとしたりした時にエラーにしてくれます。

そのエラーは、クライアントプログラム側でバリデーションを忘れていた際などにも、気づきになりますし、保存できたデータは制約に沿った信頼できるものです。

また、制約はクエリーオプティマイザーによって実行プランを生成する際にも使われるので、パフォーマンスの向上にもつながります。

SQL Server の制約の種類

SQL Server の制約には次のようなものがあります。

NOT NULL 制約
カラムに NULL が入らないように制限します。

UNIQUE 制約
カラムの値が一意になるように制限します。

CHECK 制約
カラムの値が、指定した条件で True となるように制限します。

PRIMARY KEY 制約
テーブル内の行を特定するために使われる制約で、各テーブルでひとつだけ指定できます。 NOT NULL で UNIQUE でなくてはいけません。 こちらでも説明しています -> 「SQL Server のプライマリーキー(主キー)とは?

FOREIGN KEY 制約
制約を定義したカラムに、別テーブルの UNIQUE なカラム(通常はプライマリーキー)に存在する値のみが保存できるように制限します。

DEFAULT 制約
データ挿入時に値が指定されなかった場合に、DEFAULT 制約で指定した値が入ります。


それでは、実際に制約を生成してみましょう。

© 2010-2024 SQL Server 入門