上海网站建设官网,网站前端设计与制作,重庆城乡建设信息网,深圳福田网站制作公司约束
1.概念#xff1a;约束是作用于表中字段上的规则#xff0c;用于限制存储在表中的数据。
2.目的#xff1a;保证数据库中数据的正确、有效性和完整性。
3.分类#xff1a;
约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据…约束
1.概念约束是作用于表中字段上的规则用于限制存储在表中的数据。
2.目的保证数据库中数据的正确、有效性和完整性。
3.分类
约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识要求非空且唯一PRIMARY KEY默认约束保存数据时如果未指定该字段的值则采用默认值DEFAULT检查约束8.0.1版本后保证字段值满足某一个条件CHECK外键约束用来让两张图的数据之间建立连接保证数据的一致性和完整性FOREIGN KEY
注意约束是作用于表中字段上的可以再创建表/修改表的时候添加约束。
常用约束
约束条件关键字主键PRIMARY KEY自动增长AUTO_INCREMENT不为空NOT NULL唯一UNIQUE逻辑条件CHECK默认值DEFAULT
例子
create table user(id int primary key auto_increment,name varchar(10) not null unique,age int check(age 0 and age 120),status char(1) default 1,gender char(1)
);外键约束 概念 外键用来让两张表的数据之间建立连接从而保证数据的一致性和完整性。
添加外键
CREATE TABLE 表名(字段名 字段类型,...[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);
-- 例子
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id);删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
删除/更新行为
行为说明NO ACTION当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则不允许删除/更新与RESTRICT一致RESTRICT当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则不允许删除/更新与NO ACTION一致CASCADE当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则也删除/更新外键在子表中的记录SET NULL当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则设置子表中该外键值为null要求该外键允许为nullSET DEFAULT父表有变更时子表将外键设为一个默认值Innodb不支持
更改删除/更新行为 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名(主表字段名) ON UPDATE 行为 ON DELETE 行为;
例子
insert into dept(id, name)
VALUES (1, 科技部),(2, 市场部),(3, 财务部);alter table scoreadd dept_id int;alter table scoreadd constraint fk_score_dept_id foreign key (dept_id) references dept (id) on update cascade on delete cascade;