约束

1.not null(非空约束)

2.unique(唯一约束)
唯一约束不可重复,但是可以为NULL,因为NULL不是值,可以认为NULL是不同的
mysql> create table t_test(
-> id int,
-> code varchar(255) unique #列级约束
);

mysql> create table t_test(
-> id int,
-> code varchar(255),
-> name varchar(255),
-> unique(code,name)); #表示这两个字段联合唯一【表级约束】
Query OK, 0 rows affected (1.30 sec)

insert into t_test values(1,'111','zs');
insert into t_test values(1,'111','ls');
上述插入记录是可以的

3.(primary key)主键约束
添加主键约束后,该字段数据不能为NULL也不能重复,且不能为空
主键是这行记录在这张表中的唯一标识
注意:
一张表的主键约束只能有一个。
主键和分为单一主键和复合主键 (多个字段联合起来添加一个主键约束)
mysql提供主键值自增:关键字,atuo_increment
mysql> create table t_test(
-> id int,
-> code varchar(255) primary key auto_increment #不传入
);

4.(foreign key)外键约束
外键主要用来关联两张表,其中一张表的外键字段是另一张表的主键字段。另一张表叫做父表,含有外键的表叫做子表。
create table t_student(
-> sno int,
-> sname varchar(255),
-> classno int,
-> foreign key(classno) references t_class(cno)); 添加格式
Query OK, 0 rows affected (1.64 sec)

注意:外键可以为NULL,外键字段所引用的字段不一定是外键,但需要有唯一性约束。

原文地址:https://www.cnblogs.com/tingshu/p/14843258.html