文章目录
- 表的约束的介绍
- 列描述
- 测试
- 建表
- zerofill
- 测试
- 建表
- 插入测试
- 修改表
- 插入测试
- 修改表
- 插入测试
表的约束的介绍
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。
表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。
列描述
列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。
测试
建表
comment后面就是列描述,comment是软性约束。
not null和default一般不需要同时出现,除非需求如此。
zerofill
概念 :插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的0 zerofill默认为int (10) 当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如,有符号为-128~+127,无符号为0-256。
测试
建表
我们先建立一个正常的表,然后修改表来进行对比
插入测试
修改表
在类型后面添加zerofill
插入测试
这里我们会发现添加zerofill的列,会自动补齐所缺少的位数。
**这次可以看到a的值由原来的1变成0000000001,这就是zerofill属性的作用,如果宽度小于设定的宽度(这里设置的是10),自动填充0。**要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。为什么是这样呢?我们可以用hex函数来证明。
修改表
插入测试
我们会发现只会补充int括号里面n的个数(int(1))如果超过则不会再自动补充。