主键约束,外键约束,空值约束,默认值约束,唯一约束,检查约束的各个作用是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主键约束,外键约束,空值约束,默认值约束,唯一约束,检查约束的各个作用是啥?相关的知识,希望对你有一定的参考价值。
主键约束:确定行的标识,不能为空外键约束:内容必须是所关联主键的值其中的值
空值约束:不能为空
默认约束:当插入时没有赋值,会使用默认值
唯一约束:列的内容都是唯一的,不以重复
检查约束:列的内容必须符合要求。如CHECK
(JOB
IN(‘Engineer’,’Sales’,’Manager’)); 参考技术A 主键约束:列内容不能重复,且不能为空
外键约束:内容必须是所关联主键的值其中的值
空值约束:不能为空
默认约束:当插入时没有赋值,会使用默认值
唯一约束:列的内容都是唯一的,不以重复
检查约束:列的内容必须符合要求。如CHECK
(JOB
IN(‘Engineer’,’Sales’,’Manager’)); 参考技术B 列的内容都是唯一的:列内容不能重复主键约束:当插入时没有赋值。如check
(job
in(‘engineer’,’manager’)),不以重复
检查约束,会使用默认值
唯一约束:列的内容必须符合要求,’sales’,且不能为空
外键约束:不能为空
默认约束:内容必须是所关联主键的值其中的值
空值约束
MySQL添加约束
六大约束:
NOT NULL (非空)
DEFAULT (默认)
UNIQUE (唯一) 【唯一约束可以为空值,但是不能重复】
CHECK (检查)【mysql不起作用】
PRIMARY KEY (主键)【主键约束不能为空值,也不能重复】
FOREIGN KEY (外键)
约束一般分为列级约束和表级约束。
列级约束不支持外键约束。
表级约束不支持非空和默认。
一、创建表时添加约束
模式:
create table 表名( a 类型 列级约束, b 类型 , 表级约束 )
举例:
create table test( id int primary key auto_increment, name varchar(50) not null, sex char default ‘女‘, position varchar(10) unique, sex2 char(1) check(sex2 = ‘male‘ or sex2 = ‘female‘), dept_id int references department(id) )
二、修改表时添加约束
//列级约束
alter table test modify id int primary key;
alter table test modify name varchar(50) not null;
alter table test modify sex char default ‘女‘;
alter table test modify position varchar(10) unique;
//表级约束
//中间起名的部分【】可省略,主键就算起名字也不会起作用,使用默认名字
alter table test add【constraint fk_test_department】 unique(position);
alter table test add【constraint fk_test_department】 primary key(id);
alter table test add 【constraint fk_test_department】 foreign key(dept_id) references department(id);
以上是关于主键约束,外键约束,空值约束,默认值约束,唯一约束,检查约束的各个作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章