MySQL中的约束类型

在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性,有效性,完整性

常见约束:

  • 非空约束(not null)约束的字段不能为null

  • 唯一约束(unique)约束的字段不能重复

  • 主键约束(primary key)约束的字段既不能为null,也不能重复,简称PK

  • 外键约束(foreign key)简称FK

  • 检查约束(check)注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束

唯一性约束unique

唯一性约束修饰的字段具有唯一性,不能重复,但是可以为null

创建表时标注unique

//对usercode进行唯一性约束
drop table if exists t_user;
create table t_user(
    id int,
    usercode varchar(225) unique
);
//对usercode和username进行唯一性标注
//一,联合的唯一性,表级约束
drop table if exists t_user;
create table t_user(
    id int,
    usercode varchar(225),
    username varchar(225),
    unique(user)
);
//二,各自的唯一性
drop table if exists t_user;
create table t_user(
    id int,
    usercode varchar(225) unique,
    username varchar(225) unique
);
主键约束primary

添加主键约束的字段不能为null也不能重复

主键约束的作用

  • 表的设计三范式中有要求,第一范式就要求任何一张表都应该有主键

  • 主键值是这行记录在这张表当中的唯一标识,就像一个人的身份证号码一样

主键的分类

  • 根据主键字段的字段数量来划分:

    • 单一主键

    • 复合主键,即多个字段联合起来添加的一个主键约束(不推荐)

  • 根据主键的性质来划分

    • 自然主键,与表内容没有关系的自然数

    • 业务主键,主键值与系统的业务挂钩,不建议使用

一张表的主键约束只能有一个

MySQL提供主键值自增

drop table if exists t_user;
create table t_user(
    id int primary key auto_increment,
    usercode varchar(225)
);
外键约束

外键约束主要是用来连接表与表之间的关系

drop table if exists t_student;
drop tabl eif exists t_class;
​
creat table t_calss(
    cno int,
    cname varchar(255),
    primary key(cno)
);
​
creat table t_student(
    sno int,
    sname varchar(255),
    classno int,
    foreign key(calssno) references t_class(cno)
);

猜你喜欢

转载自blog.csdn.net/Villiam_AY/article/details/134363514