約束:約束是建立表時給字段新增的限制條件。
1、非空約束:not null
,字段不能為null
create table t1
(id int
,age int not null)
;insert into t1 values(1
,18);
//成功
insert into t1 values(2
,null)
;//失敗
2、唯一約束:unique
,字段值不能重複
create table t2
(id int
,age int unique)
;insert into t2 values(1
,18);
//成功
insert into t2 values(2
,18);
//失敗
3、主鍵約束:primary key
,欄位的值唯一且非空
建立表時新增主鍵約束:
create table t3(id int primary key,age int);
建立表之後新增主鍵約束:
create table t3
(id int
,age int);
alert table t3 add primary key
(id)
;
刪除主鍵約束:因為乙個表中只有乙個主鍵,所以刪除時不用指定主鍵是哪乙個。
alter table t3 drop primary key;
4、自增:auto_increment
數值只增不減,從歷史最大值的基礎上+1,字段值賦值為null的時候自動+1,使用delete
全表刪除資料時,自增數值不變,使用truncate
自增清零。
5、預設約束:default
,給字段新增預設值,當插入資料不給該字段賦值時,預設值生效。
create table t4
(id int
,age int de****t 10);
insert into t4 values(1
,20);
insert into t4 values(2
,null)
;insert into t4 (id)
values(3
);//預設值生效
6、檢查約束:check
(該約束為mysql8.0的新特性,之前版本語法通過但是不生效)
create table t5
(id int
,age int
check
(age >10)
);insert into t5 values(1
,5);
插入資料報錯:
7、外來鍵約束:
外來鍵約束的作用:為了保證兩個表之間的關係正確建立
插入資料時外來鍵可以為null,可以重複但是不能是另一張表不存在的資料;
被依賴的表不能被先刪除;
被依賴的資料不能先刪除;
語法:constraint *** foreign key(外來鍵欄位名) references 主表名(主表欄位名)
該語法可以在 create table 和 alter table 時使用,如果不指定constraint ***,mysql會自動生成乙個名字。
如何使用外來鍵:
1)建立部門表:
create table dept
(id int primary key auto_increment,name varchar(10));
2)建立員工表:
create table emp
(id int primary key auto_increment,name varchar(10
),deptid int
,constraint fk_dept foreign key
(deptid) references dept
(id)
);
3)插入資料:
insert into dept values
(null,
'神仙'),
(null,
'妖怪');
insert into emp values
(null,
'悟空',1
);insert into emp values
(null,
'八戒',1
);insert into emp values
(null,
'賽亞人',3
);//失敗 外來鍵約束
drop table dept;
//失敗 外來鍵約束
delete from dept where id=1;
//失敗 外來鍵約束
delete from dept where id=2;
/成功
MySQL學習總結 約束
概念 對錶中的資料進行限定,保證資料的正確性 有效性和完整性。分類 1.主鍵約束 primary key 2.非空約束 not null 3.唯一約束 unique 4.外來鍵約束 foreign key 非空約束 not null,值不能為null 1.建立表時新增約束 create table ...
mysql中表的約束總結
預設值和null 一般情況下表的每個資料型別都會有它的預設值,這個預設值在表的結構中用default表示,如果我們在插入資料時,沒有給哪個字段插入資料,那麼預設情況下就會給那麼字段插入預設值,一般情況下資料型別的預設值都是null,然後null這個欄位是用來顯示,我們建立的資料表中的字段的預設值是否...
mysql怎麼約束 mysql 約束
4 約束 1 對乙個列新增的約束叫列級約束。對兩個或兩個以上的列新增的約束叫做表級約束。2 表級約束只能在字段後面新增,列級約束既可以新增在字段後面,也可以在最後新增。3 非空 預設只存在列級約束。主鍵 唯 一 外來鍵都既有表級約束又有列級約束。4 約束有 primary key 主鍵 unique...