制約
制約は、表のデータ列に適用される規則です。これらは、テーブルに入ることができるデータのタイプを制限するために使用されます。これにより、データベース内のデータの正確性と信頼性が保証されます。
制約は、列レベルまたは表レベルのいずれかになります。列レベルの制約は1つの列にのみ適用され、表レベルの制約は表全体に適用されます。
次に、SQLで使用可能な最も一般的に使用される制約のいくつかを示します。これらの制約はSQL-RDBMSの概念の章で既に説明してい ますが、現時点で修正する価値はあります。
- NOT NULL制約 – 列にNULL値を設定できないようにします。
- DEFAULT制約 – 列が指定されていない場合、列のデフォルト値を提供します。
- UNIQUE制約 – 列内のすべての値が異なることを保証します。
- PRIMARYキー – データベーステーブル内の各行/レコードを一意に識別します。
- FOREIGNキー – 特定のデータベーステーブルの行/レコードを一意に識別します。
- CHECK制約 – CHECK制約は、列内のすべての値が特定の条件を満たすことを保証します。
- INDEX – データベースから非常に迅速にデータを作成し、検索するために使用します。
制約は、CREATE TABLEステートメントを使用して表を作成するときに指定することも、表を作成した後でもALTER TABLEステートメントを使用して制約を作成することもできます。
制約の削除
定義した制約は、DROP CONSTRAINTオプションを指定したALTER TABLEコマンドを使用して削除できます。
たとえば、EMPLOYEES表に主キー制約を削除するには、次のコマンドを使用します。
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;
実装によっては、特定の制約を削除するためのショートカットを提供するものもあります。たとえば、表の主キー制約を削除するには、次のコマンドを使用します。
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;
いくつかの実装では、制約を無効にすることができます。データベースから制約を永続的に削除するのではなく、一時的に制約を無効にしてから後で有効にすることができます。
整合性制約
整合性制約は、リレーショナル・データベース内のデータの正確性と整合性を保証するために使用されます。データの整合性は、参照整合性の概念によってリレーショナルデータベースで処理されます。
参照整合性(RI)で役割を果たしている多くのタイプの整合性制約があります。これらの制約には、前述の主キー、外部キー、一意の制約、およびその他の制約が含まれます。