目录
为了更好的保证数据的合法性,对表进行约束。
1. 空属性
- null(数据库默认)
- not null(开发时,为了保证数据可以参与运算,尽可能设置不为空)
eg:插入数据时,没有给name插入数据,失败
2. 默认值
某一种数据会经常性的出现某个具体的值,可以在一开始就指定好默认值。
-
默认值的生效
-
数据在插入的时候不给该字段赋值,就使用默认值
-
3. 列描述comment
用来描述字段,便于理解字段的具体含义。
- 无法通过desc看到注释信息,可以通过show
4. zerofill
自动补0造作,针对无符号整数。
对于设置了zerofill属性的字段,如果宽度小于设定的宽度,自动填充0
- 在MySQL中实际存储的还是20,只是显示结果填充。
5. 主键primary key
用来唯一的约束该字段里面的数据
- 特点:不可重复、不可为空、一张表最多有一个主键
- 主键所在的列通常是整数类型
- 如果有多个字段作为主 键,可以使用复合主键
eg:
- 创建表的时候直接在字段上指定主键
- 主键约束:不能为空、不能重复
- 复合主键
- 追加主键
alter table 表名 add primary key(字段列表)
- 删除主键
alter table 表名 drop primary key;
6. 自增长auto_increment
当对应的字段自动的被系统触发,系统会进行当前字段中已有最大值+1的操作, 得到一个新的值。通常和主键搭配使用,作为逻辑主键。
- 特点:
- 任何一个字段要做自增长,前提是本身是一个索引(key有值)
- 自增长字段必须是整数
- 一张表最多只能有一个自增长
7. 唯一键
类似于主键,为了解决多个字段需要唯一性约束的问题
- 特点:不可重复,允许为空,一张表可以有多个唯一键
8. 外键
用于定义主表和从表之间的关系(必须有两个或两个以上的表),存储引擎必须为InnoDB。
- 外键约束主要定义在从表上,主表上必须有主键约束或唯一键约束。
- 外键被定义后,外键列数据必须在主表的主键列存在或为null
- 语法:
foreign key (从表中关联字段名) references 主表(被关联列)