保证用户填入数据库的内容符合要求,即保证每一个数据库的实例符合标准

主键约束


每个表中都有一个主键
数据要唯一且不能为null,设置ID为主键

  1. create table students(
  2. id bigint not null auto_increment,
  3. age bigint,
  4. name varchar(20),
  5. primary key(id),
  6. );

联合主键

俩个字段的数据都相同时候才违法主键约束

  1. create table students(
  2. id bigint not null,
  3. smun bigint not null,
  4. age bigint,
  5. name varchar(20),
  6. primary key(id,smun),
  7. );

唯一约束


unique表示这个值不能重复

  1. alter table students add unique(name);

自动增长


auto_increment 每个表只能有一个,并且必须被索引

  1. create table students(
  2. id bigint not null auto_increment,
  3. smun bigint not null,
  4. age bigint,
  5. name varchar(20),
  6. primary key(id,smun),
  7. );

参照完整性


  1. 新建2个表,一个为学生,另一个为学生的成绩
  2. 在成绩的表中增加一个字段,用来关联学生的主键,通常为id
  3. 设置sid为外键,和学生表的id建议约束
    1. create table students(
    2. id int not null auto_increment,
    3. age bigint,
    4. name varchar(20),
    5. constraint students_pk primary key(id),
    6. constraint students_uk unique(name),
    7. );
    8. create table scores(
    9. id int not null auto_increment,
    10. score int,
    11. course varchar(20),
    12. sid int,
    13. constraint scores_pk primary key(id),
    14. constraint scores_fk foreign key(sid) references students(id),
    15. );
    image.png ```sql alter table scores add contraint score_fk foreign key(sid) references students(id); 或者去除掉contraint就会默认为外键添加一个名字 alter table scores add foreign key(sid) references students(id);

```