mysql中的四種約束

2021-10-11 17:42:35 字數 2742 閱讀 9444

概念:對錶中的資料進行限定,保證資料的正確性、有效性、完整性。

分類:

1. 主鍵約束:primary key

2. 非空約束:not null

3. 唯一約束:unique

4. 外來鍵約束:foreign key

*非空約束:not null 值不能為null

1.建立表時新增約束

create table stu(

id int,

name varchar(20) not null-- name 為非空

);2.-- 刪除name的非空約束

alter table stu modify name varchar(20);

3.-- 建立表完後,新增非空約束

alter table stu modify name varchar(20) not null;

*唯一約束:unique,值不能重複

-新增唯一約束 unique

create table stu( 

id int,

phone_number int unique-- 新增唯一約束

);-- 注意mysql中唯一約束限定列的值可以有多個null

-- 刪除唯一約束

alter table stu drop index phone_number;

alter table `tpd_river_djdh_d` drop index djdhuniqe

-- 在建立表後,新增唯一約束

alter table stu modify phone_number unique;

*主鍵約束:primary key

1.注意:

1.含義:非空且唯一

2.一張表只能有乙個字段為主鍵

3.主鍵就是表中記錄的唯一標識

2.在建立表時新增主鍵

create table stu(

id int primary key,

name varchar(20)

);3.-- 刪除主鍵

alter table stu modify primary key;

4.-- 建立完錶後,新增主鍵

alter table stu modify id int primary key;

5.自動增長

1.概念:如果某一列是數值型別,使用 auto_increment 可以來完成值得自動增長

2.在建立表時新增主鍵,並且完成主鍵自增長

--create table su(

id int primary key auto_increment, --給id新增主鍵並自動增長

name varchar(20)

);-- 刪除自動增長

alter table su modify id int;

-- 新增自動增長

alter table su modify id int auto_increment;

*外來鍵約束:foreign key ,讓表與表產生關係

在建立表時,可以新增外來鍵,從而保證資料的正確性

1.語法:

create table 表名(..

外來鍵列constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱)

);舉例:create table department( -- 部門表

id int primary key auto_increment,

dep_name varchar(30),

dep_location varchar(30)

);create table employee( -- 員工表

id int primary key auto_increment,

name varchar(20),

age int,

dep_id int, -- 外來鍵對應主表的主鍵

constraint emp_dept_fk foreign key(dep_id) references department(id)

);2.刪除外來鍵

alter table 表名 drop foreign key 外來鍵名稱

3.建立表之後,新增外來鍵

alter table 表名 add constraint 外來鍵名稱 foreign key(外來鍵欄位名稱) references 主表名稱(主表列名稱);

4.級聯

1.-- 新增外來鍵,並且設定級聯更新

alter table employee add constraint emp_dept_fk foreign key(dep_id) references department(id) on update cascade

--刪除級聯;

alter table employee add constraint emp_dept_fk foreign key(dep_id) references department(id) on delete cascade

2.分類

1.更新:on update cascade

2.刪除:on delete cascade

關於MySQL的四種外來鍵約束

首先描述的on delete的情況。1 restrict 當刪除父表中的某條記錄時,會先檢查該條記錄的主鍵是否在字表中被引用,如果被引用,那麼將無法刪除。相反,刪除字表中的記錄,將不會有影響。2 no action 和restrict 一樣的情況。當刪除父表中的某條記錄時,會先檢查該條記錄的主鍵是否...

MySQL中的四種Key

mysql中有四種key primary key,unique key,key 和 foreign key。除了foreign key最好理解外,其他的都要區分一下。剩下的三種都要在原表上建立索引。primary key和unique key之間的區別晚上說的最多。primary key的提出 就是...

MySQL中的四種Key

mysql中有四種key primary key,unique key,key 和 foreign key。除了foreign key最好理解外,其他的都要區分一下。剩下的三種都要在原表上建立索引。primary key和unique key之間的區別網上說的最多。primary key的提出 就是...