暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第31讲:MySQL约束和非空约束

何先振 2023-11-14
232

以下文章来源于何先振,责编小何


约束介绍



数据库中需要确保数据的精准性和可靠性。防止数据库中存在不符合语义和规定的数据,防止因错误信息的输入、输出造成无效操作或错误信息。


因此SQL规范提出了约束,主要从四个方面考虑:


实体完整性:例如:同一个表中,不能存在两条完全相同无法区分的记录。


域完整性:例如:年龄的范围:0-120,性别:男或者女。


引用完整性例如:员工所在部门,员工在部门表中要能找到这个部门。


用户自定义完整性:例如:用户名唯一、密码不能为空等。


约束也就是对表中的数据做限制。


约束的分类:


可根据不同的角度进行分类:


角度1:约束的字段个数可分为,单列约束和多列约束。


角度2:约束的作用范围,列级约束和表级约束。


列级约束:将此约束声明在对应字段的后面。


表级约束:在表中所有字段都声明完后,在所有字段的后面声明的约束。


角度3,根据约束的作用划分:


not null 非空约束


unique 唯一性约束


primary key 主键约束


foreign key 外键约束


check 检查约束


default 默认值约束


如何添加约束:


create table时添加约束


alter table时增加约束、删除约束


如何查看表中的约束:


可通过MySQL的默认数据库information_schema中的table_constraints表查看。








查employees表的约束。





非空约束



MySQL默认,所有数据类型的值都可以是null,包括:int、float等数据类型。如果我们需要不能为空,就可以使用非空约束。


SQL语法:not null


特点:


非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空。


一个表可以有很多列都分别限定非空。


空字符串不等于null,0也不等于null。


添加方式:


create table时添加约束:


创建数据库、指定使用刚创建的数据库








给id、last_name字段添加非空约束not null





查看表信息





添加数据





给名字添加空,报错,因为加了非空约束。





给id设置空,报错,因为也加了非空约束





添加数据时必须给非空的字段赋值,否则会报错。例如:last_name没有赋值,我们也没指定默认值default





alter table时添加约束:


先查看表信息,只有前两个字段有约束





添加约束 modify关键字 。注意:如果该字段本身存在有空的存量数据,需要先设置非null才能添加。





重新查看表信息,已经添加约束成功。





alter table时删除约束:


删除约束





查看表信息,删除成功





推荐阅读书籍

点击上方"何先振"关注并选择设为星标
各类IT技术文章不会错过!

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论