表中的数据类型是表的约束,但是只靠数据类型来对表中的字段进行约束是不全面的,所以还要对表中的字段是否为空,是否可以重复等进行约束(not null 、default (默认值)、zerofill属性,主键、唯一键、自增长、外键)
NULL空属性
null(默认)not null(不能为空)
默认null,当插入的时候不向这个字段插入数据,不会报错,会自动插入缺省的NULL
但是如果设置为not null,那么在插入时就要插入合法的数据,不能插入空,默认的缺省也不会是空了,除非自己设置了默认的缺省才可以不显示插入
默认值(缺省值)
可以给字段设置缺省值,在插入数据的时候没有插入,就用默认值
列描述
zerofill属性
我们注意到,在创建int字段的时候,int()里会自动为我们填上一个10,这个10的含义是什么呢,int字段本身的大小就有4字节,这个10有什么意义呢,其实这里的10和数据类型的大小没有关系
这只是让数据在现实的时候用10位现实,不够的补0
主建
primary key 用来约束字段中的数据的唯一性,一张表只有一个主键,一个主键可以设置在多个字段(复合主键)
单字段主键:
在创建表字段时候就可以在后面设置
删除主键:因为一个表只有一个主键,所以删除的时候不用指明是那个字段
添加主键:
复合主键:多个字段都添加了主键
子增长
自增长一般是搭配主键使用的,一般是整数、当我没有显示的插入的时候,他会自己增长着填写
唯一键
唯一键里的值可以为NULL,数据不能重复,
唯一键和主键的数据都是不能重复的,区别在于主键里的值不能为NULL,一般而言,我们建议将主键设计成为和当前业务无关的字段,标识唯一性
而唯一键更多的是保证在业务上的要求(数据不能重复),唯一键可以有很多个,主键只有一个
唯一键和主键并不冲突,而是相互补充的
外键
从表和主表,有外键之名(存在联系),设置外键(有外键之实)
外键类数据必须是主表的主键约束或者唯一键约束