制約のMySQLデータベーステーブル

データベース制約のタイプ

制約名

制約キーワード

主キー

主キー

ユニーク

ユニーク

非空

NOT NULL

外部キー

外部キー

チェック制約

チェック注:MySQLがサポートしていない、SQLのサポート

 

主キー制約

主キーの道を作成します。

  • あなたは、主キーフィールドを追加するテーブルを作成するとき

    フィールド名フィールドタイプPRIMARY  KEY

    例1:

    CREATE  TABLEを(tb_infoINT  PRIMARY  KEY 
        名前VARCHAR30 )、
        年齢INT 
    );

    例2:

    CREATE  TABLEを(tb_info
        ID INT 
        名前VARCHAR30 )、
        年齢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、
    名前VARCHAR30 )、
    年齢INT 
);

デフォルトでは、AUTO_INCREMENTの開始値は1であります

 

あなたは、スタートを指定したテーブルを作成するとき

CREATE  TABLEを表名(
    列名INT  PRIMARY  KEYのAUTO_INCREMENT
)AUTO_INCREMENTは=開始値。

例えば:開始値を与えられた5

CREATE  TABLEの(TBを
    ID INT  PRIMARY  KEY AUTO_INCREMENT、
    名前VARCHAR30 )、
    年齢INT 
)AUTO_INCREMENT = 5 ;

 

あなたは、値の変更を開始する良いを作成した後

ALTER  TABLEテーブル名AUTO_INCREMENT =値を開始します。
:備考DELETETRUNCATE からの成長への影響を

DELETE :あなたはすべてのレコードを削除した後、成長に影響を与えていないので。
TRUNCATE:成長が再び始まって以来、消去します。

 

唯一の制約

唯一の制約:表の列には、重複値を表示することはできません

基本フォーマット

フィールド名フィールドタイプUNIQUE

以下のような:記録TBテーブル名フィールドを複製することはできません

CREATE  TABLEの(TBを
    ID INT 
    名前VARCHAR30UNIQUE 
    年齢INT 
);

 

非空制約

非空制約:列がすることはできませんヌル

基本的な構文

フィールド名フィールドタイプ、NOT  NULL

通り:TBテーブルのidフィールドはNULLを表示することはできません

CREATE  TABLEの(TBをINT  NOT  NULL 
    名前VARCHAR30 )、
    年齢INT 
);

 

デフォルト値

基本的な構文

フィールド名フィールドタイプDEFAULTのデフォルト値

以下のような:ageフィールドのデフォルト値テーブルTB 18

CREATE  TABLEの(TBを
    ID INT 
    名前VARCHAR30 )、
    年齢のINT  DEFAULT  18 
)。

 

外部キー制約

外部キー制約を作成します。

あなたは、外部キーの増加を作成するとき

CONSTRAINT外部キー制約名FOREIGN  KEY(外部キーフィールド)REFERENCESメインテーブル(主キーフィールド名)

以下のような:

メインテーブル

CREATE  TABLEの(TB1を
    ID INT 
    名前VARCHAR30 )、
    年齢INT PRIMARY  KEY (ID)
);

表から、

CREATE  TABLEの(TB2を
    カードINT 
    名前VARCHAR30 )、
    年齢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 
    名前VARCHAR30 )、
    年齢INT PRIMARY  KEY (ID)
);

表2

CREATE  TABLEの(TB2を
    カードINT 
    名前VARCHAR30 )、
    年齢INT 
);

外部キー制約TB2テーブル、外部キー列のカードを追加します。テーブルのTB1コネクタ主キー、主キーフィールドID:

ALTER  TABLEの TB2のADDの CONSTRAINT tb2_card FOREIGN  KEY(カード)REFERENCESの TB1(ID)。

 

外部キー制約を削除します。

ALTER  TABLEDROP  FOREIGN  KEY外部キーの名前。

 

外部キーのカスケード

カスケード接続された操作:カスケード演算と呼ばれるプライマリ・テーブルのプライマリ・キー、および更新または削除キー外側テーブルを、変更および削除。

カスケード操作の構文

説明

ON UPDATE CASCADE

あなたがカスケードにテーブルを作成するときにカスケード更新にのみ作成することができます。主テーブルの主キーを更新し、それが自動的に外部キー列から更新リストを同期しています

DELETE CASCADE ON

削除カスケード

例えば:

テーブルTB1を作成します。

CREATE  TABLEの(TB1を
    ID INT 
    名前VARCHAR30 )、
    年齢INT PRIMARY  KEY (ID)
);

テーブルTB2を作成します。

- 削除するアップデートをカスケード接続し、カスケード追加、TB2テーブルを作成する
CREATE  TABLEの(TB2
    カードINT 
    名前VARCHAR30 )、
    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字段也会更新。

这个时候,如果主表执行删除,则会自动删除从表中的相应记录。

 

おすすめ

転載: www.cnblogs.com/liyihua/p/12310525.html