【MySQL】:表的约束(上)

发布时间:2023年12月17日

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。

表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary
key,auto_increment,unique key 。

一.非空约束

两个值:null(默认的)和notnull(不为空)。数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。简单来说就是如果设置了这个字段,那么如果插入为空就会报错。

例子

在这里插入图片描述

这样class_room和class_name两项就不能为空,other项可以为空。

在这里插入图片描述

二.default约束

默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。

在这里插入图片描述

默认值的生效:数据在插入的时候不给该字段赋值,就使用默认值。

三.列描述

列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。

在这里插入图片描述

使用decs是看不到comment的。

在这里插入图片描述

需要查看更详细的内容。

在这里插入图片描述

简而言之,就相当于注释,给程序员看的。

四.zerofill

刚开始学习数据库时,很多人对数字类型后面的长度很迷茫。

在这里插入图片描述

可以看到int(10),这个代表什么意思呢?整型不是4字节码?这个10又代表什么呢?其实没有zerofill这个属性,括号内的数字是毫无意义的。a和b列就是前面插入的数据,但是如果添加了zerofill属性就不同了,如下:

在这里插入图片描述

在这里插入图片描述

这次可以看到a的值由原来的1变成00001,这就是zerofill属性的作用,如果宽度小于设定的宽度(这里默认设置的是10),自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1,这只是一种格式化输出。

五.主键

1.单个主键

主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;
主键所在的列通常是整数类型。

在这里插入图片描述

主键约束:主键对应的字段中不能重复,一旦重复,操作失败。

在这里插入图片描述

当表创建好以后但是没有主键的时候,可以删除主键。

在这里插入图片描述

当表创建好以后但是没有主键的时候,可以再次追加主键。

在这里插入图片描述

2.复合主键

在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。例如下面把course和id合在一起。

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_73790767/article/details/134958155
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。