概念:對錶中的資料進行限定,保證資料的正確性、有效性、完整性。
分類:
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的提出 就是...