Sql-constraints

提供:Dev Guides
移動先:案内検索

SQL-制約

制約は、テーブルのデータ列に適用されるルールです。 これらは、テーブルに入ることができるデータのタイプを制限するために使用されます。 これにより、データベース内のデータの正確性と信頼性が保証されます。

制約は、列レベルまたは表レベルのいずれかです。 列レベルの制約は1つの列にのみ適用されますが、表レベルの制約は表全体に適用されます。

以下は、SQLで使用可能な最も一般的に使用される制約の一部です。 これらの制約については、リンク:/sql/sql-rdbms-concepts [SQL-RDBMSの概念]の章ですでに説明していますが、この時点で修正することをお勧めします。

  • link:/sql/sql-not-null [NOT NULL制約]-列がNULL値を持つことができないようにします。
  • link:/sql/sql-default [DEFAULT Constraint]-何も指定されていない場合、列のデフォルト値を提供します。
  • link:/sql/sql-unique [UNIQUE制約]-列のすべての値が異なることを確認します。
  • link:/sql/sql-primary-key [PRIMARY Key]-データベーステーブルの各行/レコードを一意に識別します。
  • link:/sql/sql-foreign-key [FOREIGN Key]-特定のデータベーステーブルの行/レコードを一意に識別します。
  • link:/sql/sql-check [CHECK制約]-CHECK制約は、列のすべての値が特定の条件を満たすことを保証します。
  • link:/sql/sql-index [INDEX]-データベースからデータを非常に迅速に作成および取得するために使用されます。

CREATE TABLEステートメントを使用してテーブルを作成するときに制約を指定できます。または、ALTER TABLEステートメントを使用して、テーブルを作成した後でも制約を作成できます。

制約の削除

定義した制約は、DROP CONSTRAINTオプションを指定したALTER TABLEコマンドを使用して削除できます。

たとえば、EMPLOYEESテーブルの主キー制約を削除するには、次のコマンドを使用できます。

ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

一部の実装では、特定の制約を削除するためのショートカットが提供される場合があります。 たとえば、Oracleのテーブルの主キー制約を削除するには、次のコマンドを使用できます。

ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

一部の実装では、制約を無効にできます。 データベースから制約を永続的に削除する代わりに、制約を一時的に無効にしてから後で有効にすることができます。

整合性の制約

整合性制約は、リレーショナルデータベースのデータの正確さと一貫性を確保するために使用されます。 データの整合性は、参照整合性の概念を通じてリレーショナルデータベースで処理されます。

  • 参照整合性(RI)*で役割を果たす整合性制約には多くの種類があります。 これらの制約には、主キー、外部キー、一意の制約、および上記のその他の制約が含まれます。