天天看點

Mysql的四種限制

一、Mysql支援以下限制:

※  主鍵限制 :primary key

※  唯一性限制:unique key

※  外鍵限制:foreign key

※  非空限制:not null

※  預設值限制:default

二、主鍵限制:

一個表隻能有一個主鍵,當建表時忘記設定主鍵限制時.設定為主鍵的列查詢速度會非常快,是以一般會用聚集索引,這個我們後面會講到。

添加主鍵限制:設定myself表的age為主鍵

alter table myself add primary key(age);
           

文法:alter  table 表名 add primary key;(列名)※  可以有多個列名

修改主鍵限制:将id設定為主鍵

alter table myself modify id int primary key;
           

文法:alter table 表名 modify 列名稱  列類型 primary key;

删除主鍵限制:

alter table myself drop primary key;
           

文法:alter table 表名 drop primary key;

三、外鍵限制:

何為外鍵,當建表時需要用到另外一個表的主鍵作為本表的的主鍵時,需要設定外鍵。設定外間後,若想在删除本表資料時會級聯删除或者預設删除其他方式。

添加外鍵限制:設定本表的cno為外鍵

alter table myself add foreign key cno references course(cno); 
           

文法:alter table 表名稱 add foreign key (列名稱)  references  關聯表名稱(列名稱);

外鍵删除:

alter table myself drop foreign key myself_ibfk_1;
           

文法:alter table 表名稱 drop foreign key 外鍵名稱;   ※外鍵名和外鍵名稱不一樣

查詢外鍵名:查詢myself外鍵名

show create table myself
           
Mysql的四種限制

文法:show create table 表名

删除表時有兩種模式:

※ on delete cascade  級聯删除

※ on delete set null  表的關聯列的值設定為null

四、非空限制:

當插入新資料時對應的列為不能空。非空限制是相對于預設值限制而說的。

添加非空限制:

alter table myself modify id int not null;
           

文法:alter table 表名 modify 列名 列類型 not null; 

修改非空限制:修改非空就是改為空

alter table myself modify id int null;
           

文法:alter table 表名 modify 列名 列類型 null

删除非空限制:删除非空限制就是設定為預設值

alter table modify id int default 'abe'
           

文法:alter table modify 列名 列類型 預設值;

五、預設值限制:default:

當插入時沒有插入值時,會自動插入預設值。預設值限制相對于非空限制而說。

添加預設值限制:

alter table myself add id int not null default 'abc';
           

文法:alter table 表名 add 列名 列類型 not null default '預設值';

六、唯一性限制:

本列的内容隻能唯一不能重複。

添加唯一限制:

 文法:alter table 列名 add unique(列名稱)  ※可以有多個列名稱,用逗号隔開。

修改唯一限制:

alter table myself modify id int unique;
           

文法:alter table 表名 modify 列名稱 列類型 unique;

删除唯一限制:删除age列的唯一限制

alter table myself drop index age;
           

文法:alter table 表名稱 drop index 列名稱;

tip:mysql不支援check限制,要想達到check限制的效果,應将限制列設定為enum 枚舉型。

繼續閱讀