データベース制約のタイプ
制約名 |
制約キーワード |
主キー |
主キー |
ユニーク | ユニーク |
非空 | NOT NULL |
外部キー | 外部キー |
チェック制約 |
チェック注:MySQLがサポートしていない、SQLのサポート |
主キー制約
主キーの道を作成します。
-
あなたは、主キーフィールドを追加するテーブルを作成するとき
フィールド名フィールドタイプPRIMARY KEY
例1:
CREATE TABLEを(tb_infoINT PRIMARY KEY 、 名前VARCHAR(30 )、 年齢INT );
例2:
CREATE TABLEを(tb_info ID INT 、 名前VARCHAR(30 )、 年齢INT 、 PRIMARY KEY (ID) );
-
既存のテーブルの主キーを追加します。
ALTER TABLEのテーブル名ADD PRIMARY KEY(フィールド名);
例:
ALTER TABLE tb_info ADD PRIMARY KEY(ID)。
主キーの道を削除します。
単一のテーブルの主キー制約を削除するには
ALTER TABLE表名DROP PRIMARY KEY ;
リンクされ、主キーと外部キーテーブルを削除します
最初のステップ:外部キー制約を解除します
ALTER TABLE外部キーテーブルのDROP FOREIGN KEY外部キー名
ステップ2:主キーを削除します
ALTER TABLE主キーテーブルのDROP PRIMARY KEY ;
以下のような:主キーTB1を削除
2つのテーブルの主キーTB1の外部キー上のTB2があります。
最初のステップ:外部キー制約TB2を持ち上げます
ALTER TABLE TB2 DROP FOREIGN KEY ID2。
ステップ2:主キー制約のTB1を削除します
ALTER TABLE TB1 DROP PRIMARY KEY ;
主キーの増分
- 自動拡張(フィールド型が整数型でなければならない)を意味 AUTO_INCREMENT
以下のような:
CREATE TABLEの(TBを ID INT PRIMARY KEY AUTO_INCREMENT、 名前VARCHAR(30 )、 年齢INT );
デフォルトでは、AUTO_INCREMENTの開始値は1であります
あなたは、スタートを指定したテーブルを作成するとき
CREATE TABLEを表名( 列名INT PRIMARY KEYのAUTO_INCREMENT )AUTO_INCREMENTは=開始値。
例えば:開始値を与えられた5
CREATE TABLEの(TBを ID INT PRIMARY KEY AUTO_INCREMENT、 名前VARCHAR(30 )、 年齢INT )AUTO_INCREMENT = 5 ;
あなたは、値の変更を開始する良いを作成した後
ALTER TABLEテーブル名AUTO_INCREMENT =値を開始します。
:備考DELETEとTRUNCATE からの成長への影響を DELETE :あなたはすべてのレコードを削除した後、成長に影響を与えていないので。 TRUNCATE:成長が再び始まって以来、消去します。
唯一の制約
唯一の制約:表の列には、重複値を表示することはできません
基本フォーマット
フィールド名フィールドタイプUNIQUE
以下のような:記録TBテーブル名フィールドを複製することはできません
CREATE TABLEの(TBを ID INT 、 名前VARCHAR(30)UNIQUE 、 年齢INT );
非空制約
非空制約:列がすることはできませんヌル
基本的な構文
フィールド名フィールドタイプ、NOT NULL
通り:TBテーブルのidフィールドはNULLを表示することはできません
CREATE TABLEの(TBをINT NOT NULL 、 名前VARCHAR(30 )、 年齢INT );
デフォルト値
基本的な構文
フィールド名フィールドタイプDEFAULTのデフォルト値
以下のような:ageフィールドのデフォルト値テーブルTB 18
CREATE TABLEの(TBを ID INT 、 名前VARCHAR(30 )、 年齢のINT DEFAULT 18 )。
外部キー制約
外部キー制約を作成します。
あなたは、外部キーの増加を作成するとき
CONSTRAINT外部キー制約名FOREIGN KEY(外部キーフィールド)REFERENCESメインテーブル(主キーフィールド名)
以下のような:
メインテーブル
CREATE TABLEの(TB1を ID INT 、 名前VARCHAR(30 )、 年齢INT 、 PRIMARY KEY (ID) );
表から、
CREATE TABLEの(TB2を カードINT 、 名前VARCHAR(30 )、 年齢INT 、 CONSTRAINT tb2_card FOREIGN KEY(カード)REFERENCESのTB1(ID) );
表の外部キーカード、主テーブルの主キーに関連付けられたID、およびテーブルの名前tb2_cardから外部キー制約。
これは、外部キーテーブルを増加しています
ALTER TABLE表のADD CONSTRAINT外部キー制約名FOREIGN KEY(外部キーフィールド)REFERENCESメインテーブル(主キーフィールド名)。
以下のような:
表1
CREATE TABLEの(TB1を ID INT 、 名前VARCHAR(30 )、 年齢INT 、 PRIMARY KEY (ID) );
表2
CREATE TABLEの(TB2を カードINT 、 名前VARCHAR(30 )、 年齢INT 、 );
外部キー制約TB2テーブル、外部キー列のカードを追加します。テーブルのTB1コネクタ主キー、主キーフィールドID:
ALTER TABLEの TB2のADDの CONSTRAINT tb2_card FOREIGN KEY(カード)REFERENCESの TB1(ID)。
外部キー制約を削除します。
ALTER TABLE表DROP FOREIGN KEY外部キーの名前。
外部キーのカスケード
カスケード接続された操作:カスケード演算と呼ばれるプライマリ・テーブルのプライマリ・キー、および更新または削除キー外側テーブルを、変更および削除。
カスケード操作の構文 |
説明 |
ON UPDATE CASCADE |
あなたがカスケードにテーブルを作成するときにカスケード更新にのみ作成することができます。主テーブルの主キーを更新し、それが自動的に外部キー列から更新リストを同期しています |
DELETE CASCADE ON |
削除カスケード |
例えば:
テーブルTB1を作成します。
CREATE TABLEの(TB1を ID INT 、 名前VARCHAR(30 )、 年齢INT 、 PRIMARY KEY (ID) );
テーブルTB2を作成します。
- 削除するアップデートをカスケード接続し、カスケード追加、TB2テーブルを作成する CREATE TABLEの(TB2 カードINT 、 名前VARCHAR(30 )、 age INT, CONSTRAINT tb2_card FOREIGN KEY(card) REFERENCES tb1(id) ON UPDATE CASCADE ON DELETE CASCADE );
这个时候,如果我们向tb1表中插入数据:
INSERT INTO tb1 (id, name, age) VALUES (1001, 'LeeHua', 22)
那么,tb2中的card字段也会更新。
这个时候,如果主表执行删除,则会自动删除从表中的相应记录。