浅述Mysql的字段约束
今天,我们来谈一谈Mysql里面十分重要的一个基础知识点——字段约束。
什么是字段约束
见名应可知其义,字段约束顾名思义就是一种限制,对表的字段做出约束,以确保数据的唯一性、完整性。
有哪些字段约束
在Mysql中主要7种字段约束,这7种也是最常见的。
- 主键约束
- 外键约束
- 唯一约束
- 检查约束
- 非空约束
- 默认值约束
- auto_increment 自增长约束
此外还有几种约束,就不再介绍了。
- unsigned 无符号约束
- zerofill 零填充约束
主键约束
主键是能够唯一标识表中的每一条信息的键。主键是唯一的,一个表只能有一个主键。主键自带唯一约束、非空约束。
外键约束
外键是用来确保数据库的参照完整性的。一个表可以有多个外键,每个外键是其他表的主键。外键可以为空。
定义外键时必须为主表设置主键。
外键中的列数和数据类型必须和其对应的表的主键的列数和数据类型相同。
唯一约束
唯一约束可以用来保证数据的唯一性。一个表可以拥有多个唯一约束。NULL不受唯一约束的约束。
检查约束
检查约束是用来检查数据的有效性的。
非空约束
如果设置了非空约束,那么除非该列非空,否则不能插入数据。
p.s. ''不是NULL,这个只能算是空字符串。
默认值约束
如果设置了默认值约束,那么在插入数据时,如果插入的列为空,则该列自动填入默认值。
自增长约束
给一列设置自增长约束就会时该列的每个值自动增加。
提示:该列是属性只能是整数。
create table person(
id int primary auto_increment,
name varchar(15) unique not null,
age int default 18,
skills text dafault "唱 跳 rap",
birthday date
)
如果执行该命令,我们会发现报错。text类型的列不能设置默认值约束。
改为以下即可
create table person(
id int primary auto_increment,
name varchar(15) unique not null,
age int default 18,
skills text,
birthday date
)
此时如果插入没有姓名的值,就会报错,因为设置了非空约束。
此时如果插入两个相同姓名的值,也会报错,因为姓名列是设置了唯一约束的,该列不能出现重复的值。
如果插入的数据没有年龄,会给它设置为18岁,哈哈哈哈哈哈。
以上就是全部内容,如果喜欢我的博客,可以给我点点关注,谢谢!
- 点赞
- 收藏
- 关注作者
评论(0)