保证用户填入数据库的内容符合要求,即保证每一个数据库的实例符合标准
主键约束
每个表中都有一个主键
数据要唯一且不能为null,设置ID为主键
create table students(id bigint not null auto_increment,age bigint,name varchar(20),primary key(id),);
联合主键
俩个字段的数据都相同时候才违法主键约束
create table students(id bigint not null,smun bigint not null,age bigint,name varchar(20),primary key(id,smun),);
唯一约束
unique表示这个值不能重复
alter table students add unique(name);
自动增长
auto_increment 每个表只能有一个,并且必须被索引
create table students(id bigint not null auto_increment,smun bigint not null,age bigint,name varchar(20),primary key(id,smun),);
参照完整性
- 新建2个表,一个为学生,另一个为学生的成绩
- 在成绩的表中增加一个字段,用来关联学生的主键,通常为id
- 设置sid为外键,和学生表的id建议约束
create table students(id int not null auto_increment,age bigint,name varchar(20),constraint students_pk primary key(id),constraint students_uk unique(name),);create table scores(id int not null auto_increment,score int,course varchar(20),sid int,constraint scores_pk primary key(id),constraint scores_fk foreign key(sid) references students(id),);
```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);
```
