Mysql 約束 總結

2021-10-09 13:50:47 字數 2709 閱讀 7993

約束:約束是建立表時給字段新增的限制條件。

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...