制約:
概念:表中のデータは、データの正確性、有効性および完全性を保証するために定義されています。
カテゴリー:
1、主キー制約:主キー
2、非空制約:nullではありません
3、唯一の制約:ユニーク
4、外部キー制約:外部キー
---非空制約:nullではない、値がnullにすることはできません
1.制約を追加するテーブルを作成します。
(TABLEstuをCREATE
IDのINT、NAME VARCHAR(20)NOT NULL - 名前が空です)。
2.非NULL制約を追加した後、テーブルを作成します。
表STU MODIFY NAME VARCHAR(20)NOT NULLを改変すること。
3.非空制約の名前を削除します。
表STU MODIFY NAME VARCHAR(20)を変更します。
---唯一の制約:ユニークな、値が繰り返すことはできません
1.テーブルを作成し、ユニーク制約を追加
(表STUをCREATE
id INT、
UNIQUE PHONE_NUMBER VARCHAR(20) - ユニーク制約を追加します
);
*注:MySQLの、複数の列によって定義される固有の制約がnullの場合もあります
2.ユニーク制約をドロップ
TABLE STUはDROP INDEXのPHONE_NUMBERを改変すること。
3.テーブルを作成した後、ユニーク制約を追加
UNIQUE表STU MODIFY PHONE_NUMBER VARCHAR(20)を変更します。
---主キー制約:主キー。
1.注:
1.意味:空でないとのみ
2.テーブルには、1つのプライマリキーフィールドを持つことができます
3.主キーは、テーブルに記録されたユニークな識別子であります
2.あなたがテーブルを作成する場合、主キー制約を追加
(テーブルSTUを作成します
ID int型主キー、 - 主キー制約IDに追加します
名前のVARCHAR(20)
);
3.ドロッププライマリ
ID int型を変更し、テーブルSTUを変更; - エラー
右の方法 - ;表STU DROP PRIMARY KEYをALTER
4.表を作成した後、主キーを追加
表STUをALTERのID INT PRIMARY KEYを変更します。
5.自動成長:
1.コンセプト:カラムが数値型である場合は、AUTO_INCREMENTを使用することは価値を高める自動的に行うことができます
2.あなたがテーブルを作成し、主キー制約、および成長の主キーの完了を追加
(テーブルSTUを作成します
IDは、主キーAUTO_INCREMENTをint型 - 主キー制約のIDを追加します
名前のVARCHAR(20)
);
3.自動成長を削除します
表STUをALTERのid INTを修正。
4.自動拡張を追加
表STUは、IDのINT AUTO_INCREMENTを変更するALTER。
---外部キー制約:外部キー(データの正しさを保証するように、テーブルは、テーブルの関係を生成することになります。)
あなたがテーブルを作成するときは、外部キーを追加することができます1。
構文:
(名表テーブルを作成します
....
外部キー列
外部キー制約外部キー(外部キー列名)の名前は、主テーブル(プライマリテーブルのカラム名)の名前を参照します
);
2.外部キーを削除します。
TABLEテーブルのDROP FOREIGN KEY外部キーの名前を改変すること。
3.あなたがテーブルを作成した後、外部キーを追加
REFERENCESが(主テーブルのカラム名を)マスターテーブルに名前を付けるCONSTRAINT外部キーの名前FOREIGN KEY(外部キーフィールド名)を追加TABLEテーブル名を改変すること。
4.カスケード操作
1.カスケード操作を追加します。
構文:ALTER TABLEテーブル名ADD CONSTRAINTの外部キー名
FOREIGN KEY(外部キーフィールド名)を参照するにはCASCADEをDELETE UPDATE CASCADE ONのマスタテーブル(プライマリ・テーブルのカラム名)名。
2.カテゴリー:
1.連鎖更新:UPDATE CASCADE ON
2.カスケード削除:DELETE CASCADE ON