當前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

MySQL約束
2021-10-12 14:19:01

一、約束類型

  • 非空約束(not?null):該列不允許包含空值。
  • 主鍵約束(primary?key):唯一性,非空性。
  • 唯一約束(unique):唯一性,可以空,但只能一個。
  • 外鍵約束(foreign key() references table2()):需要建立兩表間的關(guān)系并引用主表的列。
  • show keys from emp;查詢約束名。

二、創(chuàng)建表時定義約束

create table table_name(id int primary key auto_increment,name varchar(12) not null,salary float(8,2) unique); 在類型后面添加
create table table_name(id int primary key auto_increment);創(chuàng)建主鍵并且自動增長
create table table_name(id int,name varchar(12),salary float(8,2) not null,primary key(id),unique(name)); 在末尾添加(not null不支持)

三、表存在時添加約束

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))	外鍵約束

四、修改表時添加約束

alter table emp modify id int primary key; 定義單個
    constraint table_nn 自定義約束名,省略則由系統(tǒng)生成
    [not null]	非空約束
    [unique]	唯一性約束
    [primary key]	主鍵約束

五、刪除約束

1.刪除主鍵
alter table emp drop primary key;刪除主鍵約束
alter table emp moidfy id int;當存在自動增長時需要去掉自動增長
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/

開通會員,享受整站包年服務(wù)立即開通 >