1.MYSQL 字段约束
有时设置字段的数据类型还远远不够,还需要添加一些附加属性,如自动增量、自动补零、默认值设置等。这时可以使用字段约束来实现。
1.1. UNSIGNED
- 只能用于设置数值类型。
- 不允许出现负数,若是某些字段不需要插入负数,使用该属性可以将字段的最大储存长度增加一倍。例如:(
TINYINT:原本储存长度为 -128 ~ 127,使用UNSIGNED后为 0 ~ 255)
1.2. ZEROFILL
- 同上,只能用于设置数值类型。
- 在数值
之前自动用 0 补齐不足的位置 - 当给字段使用其属性时,该字段自动应用
UNSIGNED属性
1.3. AUTO_INCREMENT (此属性必须配合 KEY 值一起使用)
- 该属性用于设置字段的自动增量属性
- 设置后该字段的值不允许重复
1.4. NULL和NOT NULL(一般就使用默认值即可)
- 字段默认为 BULL,即此字段未插入值(也可理解为默认值)
- 如果指定了NOT BULL ,则必须在此字段插入值(否则报错,严格模式下)
1.5. DEFAULT
- 此属性可以给字段添加默认值,在性别等字段使用
使用方法如下
1.6. 字段约束的使用
直接在建表或插入数据时,添加约束至数据类型后即可
这里拿 UNSIGNED 实验一下
建表成功,下面来对比一下两个表的数据
上面是没有使用字段约束的 TINYINT 类型,后面的括号代表了字节长度为 4 ( -128 ~ 127 ,符号也会算进去)
上面是使用了unsigneds字段约束的TINYINT类型,字节长度为 3 (0 ~ 255,没有负数符号,所以最大字节为 3)。
2.MYSQL 主键约束(PRIMARY KEY)
主键约束也是字段约束一种,保持了数据的唯一性,帮助我们更好找到需要的内容
关键字 : PRIMARY KEY
- 每张数据表中只能存在一个主键
- 作用为 保证记录的唯一性
- 主键自动使用 NOT BULL 关键字
-
AUTO_INCREMENT必须和PRIMARY KEY一起使用。但是反过来,PRIMARY KEY则不需要,可以单独使用
下面将 AUTO_INCREMENT 使用一下
上面创建了 名为 tp2 的数据表,定义了 id 与 user 用了 不用的字段约束,下面来查看一下
下面来定义一下 user 的数据 ,并查看数据
可以看到,我们并没有给 id 设置具体的值,但是 AUTO_INCREMENT 字段约束会自动增量,于是当user 插入了值时,id 也会自动增量
注意:上面只是体现了 AUTO_INCREMENT 的特性,下面来看看 PRIMARY KEY 有什么作用
定义表 tp3
查看表,id 出现KEY为 PRI,并且不能为 NULL
向表中插入id值为 5成功。但是再插入同样的 id 值时却失败,将 5 换成其他数字,成功插入。
这就证明了 使用 PRIMARY KEY 可以将字段的值具有唯一性,不可重复
3.MYSQL 唯一约束(UNIQUE KEY)
唯一约束跟主键约束非常类似,不同的就是唯一约束可以 为空值 并且可以存在多个唯一约束
- 关键字: UNIQUE KEY
- 可以保证记录的唯一性
- 可以为空值
- 可以存在多个 UNIQUE KEY
在表中若是存在多个需要唯一标识的值时(例如:手机号、id值、身份证等),用PRIMARY KEY就不能完全满足需求了,这时 UNIQUE KEY 就可以更合适的使用