一、約束類(lèi)型
- 非空約束(not?null):該列不允許包含空值。
- 主鍵約束(primary?key):唯一性,非空性。
- 唯一約束(unique):唯一性,可以空,但只能一個(gè)。
- 外鍵約束(foreign key() references table2()):需要建立兩表間的關(guān)系并引用主表的列。
- show keys from emp;查詢(xún)約束名。
二、創(chuàng)建表時(shí)定義約束
create table table_name(id int primary key auto_increment,name varchar(12) not null,salary float(8,2) unique); 在類(lèi)型后面添加
create table table_name(id int primary key auto_increment);創(chuàng)建主鍵并且自動(dòng)增長(zhǎng)
create table table_name(id int,name varchar(12),salary float(8,2) not null,primary key(id),unique(name)); 在末尾添加(not null不支持)
三、表存在時(shí)添加約束
alter table table_name add unique(id);
alter table emp add(primary key(id),unique(name),foreign key(dept_id) references dept(id));
constraint table_pk 自定義約束名,省略則由系統(tǒng)生成
[unique] 唯一性約束
[primary key] 主鍵約束
[primary key(id,name)] 聯(lián)合主鍵
[foreign key(id) references table_name1(id)) 外鍵約束
四、修改表時(shí)添加約束
alter table emp modify id int primary key; 定義單個(gè)
constraint table_nn 自定義約束名,省略則由系統(tǒng)生成
[not null] 非空約束
[unique] 唯一性約束
[primary key] 主鍵約束
五、刪除約束
1.刪除主鍵
alter table emp drop primary key;刪除主鍵約束
alter table emp moidfy id int;當(dāng)存在自動(dòng)增長(zhǎng)時(shí)需要去掉自動(dòng)增長(zhǎng)
alter table emp drop primary key;刪除主鍵約束
2.刪除非空約束
alter table emp moidfy naem varchar(30);不帶not null
3.刪除唯一性約束
alter table emp drop key name_uk;
4.刪除外鍵約束
alter table emp drop foreign key depr_id_fk;
alter table emp drop index depr_id_fk;刪除外鍵還需刪除索引
本文摘自 :https://www.cnblogs.com/