- 主键约束
- 自增约束
- 唯一约束
- 非空约束
- 默认约束
- 外键约束
主键约束
它能够使我们唯一确定一张表中的一条记录,也就是我们给某个字段添加主键约束,就可以使得该字段不重复且不为空。
添加方法:
创建表时给某个字段添加主键约束
create table user(
id int primary key,
name varchar(20)
);
此时id字段不能重复,且不能为空。
联合主键
由多个字段共同组成的主键,这几个字段不可以全部相同。
1 | create table user2( |
这里id和name不可以同时相同。
自增约束
作用:自增约束的字段值会自动增加,不需要在insert时显示赋予值。
1 | create table user3( |
insert into user3 (name) values (‘张三’); # 只添加name字段
但是也可以手动加上id字段,只是不可以与已有的重复。自动增加以最后一条数据的id为基准。
1 | 如果在创建表时忘了添加主键约束怎么办? |
唯一约束
作用:限制某个字段的值不能重复,但是可以为空。(主键约束与它的区别限制不能为空且不能重复)
建表时创建唯一主键:
1 | create table user_uni( |
同时也可以这样写:
1 | create table user_uni( |
如果是下面这种写法,就是联合唯一约束,相加不能重复,
1 | create table user_uni( |
如果创建表时忘了添加唯一约束,可以单独添加,
1 | ALTER TABLE user ADD UNIQUE(name); |
如果想删除唯一约束:
1 | alter table user drop index name; |
非空约束
约束某个字段不能为空。
建表时添加非空约束:
1 | CREATE TABLE user ( |
移除非空约束:
1 | alter table user modify name varchar(20); |
默认约束
约束某个字段的默认值。
建表时添加默认约束:
1 | create table user2 ( |
插入数据时如果没有传入age的值,会默认置为13。
移除约束:
1 | ALTER TABLE user MODIFY age INT; |
外键约束
限制学生表中class_id的值必须来自class表中id字段的值。
1 | -- 班级 |