1、データベースの制約。
制約は、テーブルのデータ検証ルール、主にデータベース内のデータの整合性を確保するために使用される制約に適用されます。
MySQLデータベースこのデータベース・インスタンス内のすべての制約情報を保持するためにTABLE_CONSTRAINTSテーブルのINFORMATION_SCHEMAを使用しました。
2、一般的なデータベースの整合性制約:
1「NOT NULL:空でない制約。
2「UNIQUE:唯一の制約は繰り返すことができない列(一つ以上)、または列の組み合わせを指定します。
3「PRIMARY KEY:主キー制約は、列の値が一意にこのレコードを識別する指定します。
4「FOREIGN KEY:外部キー制約は、プライマリ・テーブル内のレコードに属する行を指定する(例えば、フィールドのフィールド値は、フィールドマスターテーブル値に存在しなければならない)、主に参照整合性を保証するために使用されます。
5「CHECK:ブール式を指定してチェックし、列の値を指定するには、対応する式を満たす必要があります。(MySQLはMySQLの文がCHECK制約を使用することができたとしても、この制約をサポートしていませんが、制約が反映されません)
図3に示すように、データが格納されている辞書(テーブル・システム)に格納され、データベースオブジェクト制約されます。データ列に課される制限は、制約は、2つのカテゴリに分けられます。
1「単一の制約:各制約は一つだけに結合されます。
2「マルチカラム制約:制約は、データ列の複数のそれぞれを制約することができます。
4、2回制約を指定:
1「テーブルの構成は、対応するデータ列に拘束指定されています。
テーブルが作成された後2」制約を増やす方法のリストを修正するために、構築されました。
ほとんどの制約は、列レベルの制約構文や文法、テーブルレベルの制約を採用することができます。
5、一般的な制約の5種類の詳細
1「NOT NULL制約
唯一の列レベルの制約構文定義を使用することができ、列レベルの制約としてのみ使用してください。
SQLは、すべてのデータ型がnullの場合も、空の文字列がヌルに等しくない、大文字と小文字を区別しnullでない0はヌルに等しくない場合、ヌルヌルに等しくありません。
2「UNIQUE制約
列(一つ以上)、または列の組み合わせを繰り返すことができないかを指定する(それはヌルヌルを意味するものではないため、複数のヌル値は、起こり得ます)。
列に一意の制約を作成する場合、MySQLはそれに応じてそのためのユニークなインデックスを作成表示されます。あなたが名前のユニーク制約を与えていない場合は、唯一の制約は、列名と同じデフォルト。
唯一の制約は、いずれかを使用し、カラム・レベルの制約文法が確立されることができ、あなたは、確立されたテーブル・レベルの制約構文を使用することができます。あなたは建設、または制約名指定されたユニークな制限の必要性のために複数カラムのユニーク制約の組み合わせが必要な場合は、あなただけのテーブルレベルの制約構文を使用することができます。
表レベルの制約構文:制約構文を配置することができますいずれか縛ら列定義でtable文を作成するには、制約を追加するために追加のキーワードを使用してALTER TABLE文を配置することができます。
[ 制約A制約名]制約の定義
例:
作成 表EMP ( e_name VARCHAR(255 ); e_pass VARCHAR(255 ); - テーブル・レベルの制約はユニーク制約の文法作成使用して UNIQUE (e_nameを)、 - ユニーク制約を確立し、テーブルレベルの制約構文、および制約名指定された 制約 un_emp_pass UNIQUE ( e_pass) );