表一定要有约束,通过约束,让我们未来插入的数据符合预期要求,插入正确的数据,反过来,凡是插入的数据一定符合条件。
常见的约束条件
空属性
NULL和not NULL
约束数据是否可以为空。默认所以的数据可以为空。

创建了两个不能为空的数据,和一个空数据。

插入''也算字符,要求非空的约束,一定要插入信息。
默认值
defalut设置默认值。

用于提前设置,如果不输入用默认的。

列描述
comment 列描述字段,用于说明这个数据是什么无实际含义。
zerofill
填充0,如果数字类型没有达到长度会自动填充0;
主键
设置主键使数据不重复。
primary key;

插入主键值id时不可以重复
也可以设置复合主键,如primary key(id, course) -- id和course为复合主键,必须同时冲突才会冲突。
自增长
一般搭配主键使用。
auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值
+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
唯一键
设置唯一键的数据不可以重复但可以为NULL,为NULL不进行比较;
unique key
外键
外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique
约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
foreign key (字段名) references 主表(列)