MySQL进阶_数据库约束

举报
bug郭 发表于 2022/08/11 09:48:00 2022/08/11
【摘要】 写在前面我们上篇博客,学习了MySQL的基础增删查改操作!当我们需要将多张表的数据组织在一起或是多张表多有联系,那么该如何去创建表!如何实现增删查改功能呢!我们本篇博客就带大家来学习一下mysql表的一些稍微复杂的操作! 数据库约束not null- 指示某列不能存储 NULL 值。unique- 保证某列的每行必须有唯一的值。default - 规定没有给列赋值时的默认值。primary...

写在前面

我们上篇博客,学习了MySQL的基础增删查改操作!
当我们需要将多张表的数据组织在一起或是多张表多有联系,那么该如何去创建表!
如何实现增删查改功能呢!
我们本篇博客就带大家来学习一下mysql表的一些稍微复杂的操作!

数据库约束

  • not null- 指示某列不能存储 NULL 值。
  • unique- 保证某列的每行必须有唯一的值。
  • default - 规定没有给列赋值时的默认值。
  • primary key - not nullnuique的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • foreign key - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • check - 保证列中的值符合指定的条件。对于MySQL数据库,对check子句进行分析,但是忽略check子句。

null约束

创建表时可以指定某列不为空!

在这里插入图片描述
我们指定了student_1表中namescore不能为空!
当我们插入一个空值时:
在这里插入图片描述
可以看到但我们name为空时,插入失败!
正确插入方式是要将namescore都赋予值,不能为空!
在这里插入图片描述
注意:
这里的指定列不为空语法是:
属性 类型 not null
只需要在某一列后面写上not null
切记:is not null是条件语句!

nuique:唯一约束

指定某一列中的数据,唯一的,不重复!
就比如我们的身份证号:每个人都是唯一的!
在这里插入图片描述我们设置了id为(unique)唯一约束,那么id就不能重复!

default默认值约束

指定插入值时,name为空 ,有默认值!
就相当于,我们不想让对方知道我们的姓名,我们就采用匿名的方式!
在这里插入图片描述
这就好比现在双减政策下,我们不能将学生的成绩排名公之于众,只有采用这种匿名的方式,很好解决了!

primary key:主键约束

指定id为主键!
那么id既不能是null也需要瞒住unique唯一性;
在这里插入图片描述

在这里插入图片描述扩展: 对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1

--主键约束 primary key 是 unique 和 not null的结合!
id int primary key auto_increment

在这里插入图片描述当我们使用了auto_increment时,如果主键没有赋值,那么自动赋值为该表中的最大值加1;

foreign key:外键约束

外键用于关联其他表的主键(primary key)或唯一键(unique)
比如好多表互相有联系时!那么我们就需要用到foreign key外键约束!
SQL语句
foreign key (字段名) references 主表(列名)

学生信息和班级信息就需要使用外键约束!
在这里插入图片描述
当我们外键约束的表中插入,主表中不含的数据时,插入数据失败!!!
因为没有103这个班级,所以这个学生信息有误!!!

check约束

MySQL使用时不报错,但忽略该约束

当我们table表中的某些字段的值含有那么几个默认的选项! 那么我们就可以用check检查是否满足!
比如 性别 属性 只有男或者女!当我们插入的数据性别不为这二者时显然信息错误! 而check便可以很好的检测出!
在这里插入图片描述
在这里插入图片描述然而并未起到作用…这个了解一下即可!!!

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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