MySQL进阶_数据库约束
写在前面
我们上篇博客,学习了MySQL的基础增删查改操作!
当我们需要将多张表的数据组织在一起或是多张表多有联系,那么该如何去创建表!
如何实现增删查改功能呢!
我们本篇博客就带大家来学习一下mysql表的一些稍微复杂的操作!
数据库约束
not null- 指示某列不能存储NULL值。unique- 保证某列的每行必须有唯一的值。default- 规定没有给列赋值时的默认值。primary key-not null和nuique的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。foreign key- 保证一个表中的数据匹配另一个表中的值的参照完整性。check- 保证列中的值符合指定的条件。对于MySQL数据库,对check子句进行分析,但是忽略check子句。
null约束
创建表时可以指定某列不为空!

我们指定了student_1表中name和score不能为空!
当我们插入一个空值时:

可以看到但我们name为空时,插入失败!
正确插入方式是要将name和score都赋予值,不能为空!

注意:
这里的指定列不为空语法是:
属性 类型 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便可以很好的检测出!

然而并未起到作用…这个了解一下即可!!!
- 点赞
- 收藏
- 关注作者
评论(0)