浅述Mysql的字段约束

举报
Regan Yue 发表于 2021/07/19 13:51:16 2021/07/19
【摘要】 今天,我们来谈一谈Mysql里面十分重要的一个基础知识点——字段约束。 什么是字段约束见名应可知其义,字段约束顾名思义就是一种限制,对表的字段做出约束,以确保数据的唯一性、完整性。 有哪些字段约束在Mysql中主要7种字段约束,这7种也是最常见的。主键约束外键约束唯一约束检查约束非空约束默认值约束auto_increment 自增长约束此外还有几种约束,就不再介绍了。unsigned 无符号...

今天,我们来谈一谈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岁,哈哈哈哈哈哈。

以上就是全部内容,如果喜欢我的博客,可以给我点点关注,谢谢!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。