【MySQL】不可忽视的数据库束缚,维护数据秩序的幕后好汉

[复制链接]
发表于 2025-9-7 06:53:52 | 显示全部楼层 |阅读模式

   我的个人主页    我的专栏人工智能领域、java-数据结构、Javase、C语言,MySQL,希望能帮助到各人!!! 点赞👍收藏❤



   引言
数据库管理的天下里,有一群冷静无闻却又至关紧张的“幕后好汉”——数据库束缚。它们如同忠诚的卫士,时刻守护着数据的完整性和一致性,确保数据库系统的稳固运行。然而,在实际的数据库设计和开辟过程中,数据库束缚的紧张性常常被忽视,导致数据混乱、错误频出。本日,我们就来深入探讨一下数据库束缚的奥秘,以及它们在维护数据秩序方面的关键作用。
  目次

一、数据库束缚的定义和类型
二、数据库束缚的分类
三、数据库束缚的作用
四、数据库束缚的应用场景
五、数据库束缚的留意事项
六、总结
一、数据库束缚的定义和类型

数据库束缚是一种规则,用于限制数据库中数据的插入、更新和删除利用,以确保数据的正确性、完整性和一致性。常见的数据库束缚类型包罗:
类型阐明NOT NULL(不允许为空)指定⾮空束缚的列不能存储 NULL 值DEFAULT(设置默认值)当没有给列赋值时使⽤的默认值UNIQUE(值需唯一)指定唯⼀束缚的列每⾏数据必须有唯⼀的值PRIMARY KEY(主键,兼具非空和唯一)NOT NULL 和 UNIQUE的结合,可以指定⼀个列或多个列,有助于防⽌数据重复和提⾼数据的查询性能FOREIGN KEY(建立表间关联)外键束缚是⼀种关系束缚,⽤于定义两个表之间的关联关系,可以确保数据的完整性和⼀致性CHECK(检查数据取值)⽤于限制列或数据在数据库表中的值,确保数据的正确性和可靠性二、数据库束缚的分类

2.1⾮空束缚(NOT NULL)

   定义表时某列不允许为NULL时,可以为列添加⾮空束缚。
  

  • 以创建一个弟子表为例,当弟子名为null,这条记录就是不完整的。

    此时班级名为null,就没故意义了,所以我们要束缚学⽣名的列不能为NULL。当name为空时,他就会报错

    当我们插入包罗name时即可插入成功

   我们可以检察表结构,NULL列为NO表⽰值不允许为NULL,YES表⽰值可以为NULL
  

2.2. DEFALUT 默认值束缚

   DEFAULT 束缚⽤于向列中插⼊默认值,如果没有为列设置值,那么会将默认值设置到该列
  重构学⽣表,新增年岁列

插⼊⼀条记录,没有设置默认束缚时,不指定年岁的值时列为NULL

   重构学⽣表,为年岁的列加⼊默认束缚
  

插⼊⼀条记录,不指定年岁的值时列使⽤了默认值,可以看到利用了默认值18

检察表结构,年岁列的默认值为18

   当然当⼿动明确指年岁列为NULL时列值为NULL
  

2.3. UNIQUE 唯⼀束缚

   指定了唯⼀束缚的列,该列的值在全部记录中不能重复,⽐如⼀个⼈的⾝份证号,学⽣的学号等
  当不设置唯⼀束缚时,学号可以重复

当我们为学号设置列设置唯⼀束缚,这时输入相同的学号就会报错

检察表结构,Key列显⽰UNI表⽰唯⼀束缚

2.4PRIMARY KEY 主键束缚



  • 主键束缚唯⼀标识数据库表中的每条记录。
  • 主键必须包含唯⼀的值,且不能包含 NULL 值。
  • 每个表只能有⼀个主键,可以由单个列或多个列组成。
  • 通常为每张表都指定⼀个主键,主键列发起使⽤BIGINT类型
为ID列添加⾮空和唯⼀束缚。 检察表结构,添加了⾮空和唯⼀束缚之后Key列显⽰PRI表⽰主键

当Id列的重复时会发⽣主键冲突

   通常我们会把主键列设置为⾃动增⻓,让数据库维护主键值和插⼊数据时不设置主键列的值,我们插入第一个数据主键列的值为NULL,第二个数据不指定主键,最终主键列的值会自动生成。
  

检察表结构时候,Extra列显⽰autoincrement 表⽰⾃增

此中主键值可以不连续

2.5FOREIGN KEY 外键束缚



  • 外键⽤于定义主表和从表之间的关系
  • 外键束缚主定义在从表的列上,主表关联的列必须是主键或唯⼀束缚
  • 当定义外键后,要求从表中的外键列数据必须在主表的主键或唯⼀列存在或为null。
重构学⽣表(从表),加⼊外键束缚,在这里创建主表class从表student

检察表结构,Key列的值为MUL表⽰外键束缚的列

2.6CHECK 束缚

   可以应⽤于⼀个或多个列,⽤于限制列中可接受的数据值,从⽽确保数据的完整性和正确性。
在8.0.16开始全⾯⽀持CHECK束缚,之前的版本会忽略CHECK的定义
  插入正常数据

当插入年岁小于16时

插入的性别不符合实际是

三、数据库束缚的作用


  • 保证数据的完整性:通过主键束缚、唯一束缚和外键束缚,可以确保表中的数据是唯一的、不重复的,而且与其他表中的数据保持一致。
  • 提高数据的质量:检查束缚可以限制列的取值范围,制止无效数据的插入,从而提高数据的质量。
  • 简化数据利用:默认束缚可以为列提供默认值,淘汰数据输入的工作量,提高数据利用的效率。
  • 维护数据库的稳固性:数据库束缚可以防止数据的不一致性和错误,从而维护数据库的稳固性和可靠性。
四、数据库束缚的应用场景


  • 订单管理系统:在订单管理系统中,订单表和客户表之间可以通过外键束缚建立关联关系,确保订单数据与客户数据的一致性。
  • 弟子信息管理系统:在弟子信息管理系统中,弟子表中的学号列可以设置为主键束缚,确保每个弟子的学号是唯一的。
  • 商品库存管理系统:在商品库存管理系统中,商品表中的库存数量列可以设置为检查束缚,确保库存数量不能为负数。
五、数据库束缚的留意事项


  • 公道利用束缚:在设计数据库时,应根据实际需求公道利用束缚,制止过度束缚或束缚不敷。
  • 考虑性能影响:数据库束缚会对数据库的性能产生肯定的影响,应在保证数据完整性的前提下,只管淘汰束缚的利用。
  • 定期维护束缚:随着业务的发展和数据的变革,数据库束缚可能需要举行调整和维护,以确保其有用性和实用性。
六、总论

数据库束缚是数据库管理中不可或缺的一部门,它们在维护数据秩序、保证数据完整性和一致性方面发挥着紧张作用。作为数据库开辟者和管理者,我们应该充分认识到数据库束缚的紧张性,公道利用束缚,确保数据库系统的稳固运行。同时,我们还应该定期对数据库束缚举行检查和维护,以适应业务的发展和数据的变革。只有这样,我们才能真正发挥数据库束缚的作用,为企业的信息化建设提供有力支持。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表