1. 程式人生 > >Mysql-基本練習(07-修改表-新增主鍵、唯一、外來鍵約束、新增/刪除預設約束、刪除約束)

Mysql-基本練習(07-修改表-新增主鍵、唯一、外來鍵約束、新增/刪除預設約束、刪除約束)

1.新增主鍵約束

語法:ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,……)

新增主鍵約束前表結構

為表tb1id欄位新增主鍵約束,約束名為pk_tb1_id

ALTER TABLE tb1 ADD CONSTRAINT pk_tb1_id PRIMARY KEY(id);

新增主鍵約束後的表結構

2.新增唯一約束

語法:ALTER TABLE tb_name ADD

[CONSTRAINT [symbol]] UNIQUE [index | KEY] [index_name] [index_type] (index_col_name,……)

為表tb1name欄位新增唯一約束

ALTER TABLE tb1 ADD UNIQUE (name);

新增唯一約束後的表結構

3.新增外來鍵約束

語法:ALTER TABLE tb_name ADD

[CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,……) reference_definition

先為表tb1新增列tb2_id,在為表tb1tb2_id 欄位新增外來鍵約束,引用表tb2的主鍵id

 ALTER TABLE tb1 ADD FOREIGN KEY (tb2_id) REFERENCES tb2 (id);

新增外來鍵約束後的建表細節


4.新增/刪除預設約束

語法:ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

為表tb1name欄位新增預設約束,值為“笑笑

 ALTER TABLE tb1 ALTER name SET DEFAULT "笑笑";

新增預設約束後的表結構

刪除預設約束

ALTER TABLE tb1 ALTER name DROP DEFAULT;

刪除預設約束後的表結構

5.刪除約束

1)刪除主鍵約束

語法:ALTER TABLE tb_name DROP PRIMARY KEY

刪除表tb1的主鍵約束

ALTER TABLE tb1 DROP PRIMARY KEY;

2)刪除唯一約束

語法:ALTER TABLE tb_name DROP {INDEX | KEY} index_name

根據語法可知,我們先得檢視唯一約束的索引

語法:SHOW INDEXES FROM tb_name\G   (\G表示以網格的形式顯示資訊)

 SHOW INDEXES FROM tb1\G;

 

由結果得知,唯一約束的索引名稱為name

刪除表tb1的唯一約束

ALTER TABLE tb1 DROP INDEX name;

3)刪除外來鍵約束

語法:ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol

我們先得檢視外來鍵約束的名稱

SHOW CREATE TABLE tb1;

根據結果可知,外來鍵約束名稱為:tb1_ibfk_1

刪除表tb1的外來鍵約束

ALTER TABLE tb1 DROP FOREIGN KEY tb1_ibfk_1;

刪除外來鍵約束的索引,索引名由上圖可知為:tb2_id

ALTER TABLE tb1 DROP INDEX tb2_id;

刪除所有約束、索引之後的表結構為