千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 09:43:08 1697161388

一、关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点

1.字段默认值:针对每个字段都有自己的默认值,较有利于进行统计和分析,以及方便程序逻辑操作;

2.不可为空:若是该字段创建为索引情况下,且允许为NULL,则存储多个值,若是不允许为空,可能用某一个值替代,则索引值更少,以及部分数据库产品不支持字段为NULL情况下创建索引(特别是早期的数据库产品)。

3.少数性约束:那是指有数据少数性要求的情况下,可以借助数据库的方式判断是否存在重复值,而避免程序去判断,减少事务的处理等。

六大约束:

not null 非空 :用于保障该字段的值不能为空, 比如姓名、学号等

Default 默认: 用于保证该字段有默认值,比如性别、

PRIMARY KEY 主键: 用于保证该字段的值有少数性,并且 非空。是能够少数的标识一组数据的数据元素;比如说:学号,姓名,年龄,性别,课程号课程中学号是少数的

UNIQUE 少数约束: 用于保障该字段的值有少数性,可以为空, 比如座位号

Check 检查约束:mysql中不支持,但不报错

Foreign KEY 外键:用于限制两个标的关系 用于保证该字段的值必须来自于主表关联的值。 一组数据的主键是另一组数据的的元素;主键约束了外键所在表中不能存在主键类之外的值;外键用于与另一张表的关联。比如:学生表的专业编号、员工表的部门编号。

延伸阅读:

二、索引维护

B+树为了维护索引有序性,在插入新值的时候需要做必要的维护。以上面这个图为例,如果插入新的行ID值为700,则只需要在R5的记录后面插入一个新记录。如果新插入的ID值为400,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置。

而更糟的情况是,如果R5所在的数据页已经满了,根据B+树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。这个过程称为页分裂。在这种情况下,性能自然会受影响。

除了性能外,页分裂操作还影响数据页的利用率。原本放在一个页的数据,现在分到两个页中,整体空间利用率降低大约50%。

当然有分裂就有合并。当相邻两个页由于删除了数据,利用率很低之后,会将数据页做合并。合并的过程,可以认为是分裂过程的逆过程。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT