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)