数据库的约束有哪些

数据库的约束有:1、主键约束;2、非空约束;3、自增长约束;4、非负约束;5、少数约束;6、外键约束。主键约束是指,主键修饰的字段,非空且少数,一张表中只能有一个主键。

数据库的约束有哪些-Worktile社区

1、主键约束

主键约束在表中定义一个主键来少数确定表中每一行数据的标识符。

特点:

  • 主键约束相当于少数性约束+ 非空约束,主键约束不允许重复,也不允许出现空值;
  • 一个表非常多只能有一个主键约束,建立主键约束可以在列级别创建,也可以再表级别创建;
  • 主键约束对应着表中的一列或者多列,对应着多列的时候就是复合主键(可以类比我们之前讲过的复合少数性约束);
  • 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值也不允许重复;
  • MySQL中的主键约束名永远都是PRIMARY,就算我们自己命名了主键约束名,这个时候主键约束名也还是PRIMARY,不会改变;
  • 当创建主键约束时,系统默认会在主键约束所在的列或者列组合上建立对应的主键索引,如果删除主键约束,那么主键索引也就自动删除了。当一个表中有主键约束时,系统会默认根据主键约束对应的主键索引来构建一个B+tree的结构,用于存储表中的数据,在这种B+tree的结构下查询的效率更高;
  • 需要注意:不要修改主键字段的值,因为主键是数据记录的少数标识,如果修改了主键的值,就有可能会破坏数据的完整性。

2、非空约束

非空约束指的是表中的某一个字段的内容不允许为空,如果要使用非空约束,只需要在每个列的后面利用“NOT NULL”声明即可。

特点:

  • 默认,所有的类型的值都可以是NULL,包括INT、FLOAT等数据类型
  • 非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空
  • 一个表可以有很多列都分别限定了非空
  • 空字符串’’不等于NULL,0也不等于NULL

3、自增长约束

在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。

特点:

  • 默认情况下,auto_increment的初始值是 1,每新增一条记录,字段值自动加 1。
  • 一个表中只能有一个字段使用 auto_increment约束,且该字段必须有少数索引,以避免序号重复(即为主键或主键的一部分)。
  • auto_increment约束的字段必须具备 NOT NULL 属性。
  • auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等。
  • auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。

4、非负约束

指定某列不可存储负值,添加非负约束后,取值范围将发生变化,例如int范围是-128~127,添加非负约束后将变成0-255。

5、少数约束

少数约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为 id 字段加上少数性约束后,每条记录的 id 值都是少数的,不能出现重复的情况。少数约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是少数的。

少数约束SQL实现:

CREATE TABLE OnlyConstraint
(ConstraintColumnOne VARCHAR(20) NOT NULL UNIQUE,
ConstraintColumnTwo VARCHAR(20) NOT NULL,
CONSTRAINT UK_OnlyConstraint_ConstraintColumnTwo UNIQUE(ConstraintColumnTwo) )
GO

6、外键约束

FOREIGN KEY是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

定义外键时,需要遵守下列规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
  • 必须为主表定义主键。
  • 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
  • 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
  • 外键中列的数目必须和主表的主键中列的数目相同。
  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

延伸阅读

数据库的三大范式

  • 名列前茅范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足名列前茅范式的,简记为1NF。满足名列前茅范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
  • 第二范式:如果关系模式R满足名列前茅范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。
  • 第三范式:设R是一个满足名列前茅范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF。

文章标题:数据库的约束有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34588

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月6日 上午5:59
下一篇 2023年1月6日 上午6:30

相关推荐

  • DevOps和传统软件开发有什么区别

    DevOps是一种软件开发管理实践,旨在缩短系统开发生命周期,同时提供高质量的软件和 频繁、可靠的代码更新。它与传统软件开发的主要区别包括1、开发与运营的整合、2、持续集成与持续部署、3、自动化的流程、4、文化与实践的改变、5、反馈与改进的循环。DevOps强调的是开发(Dev)和运营(Ops)团队…

    2023年11月18日
    55100
  • UniApp中集成MQTT实现即时通讯的详细步骤

    UniApp通过整合MQTT实现即时通信涵盖:1、选择MQTT客户端库、2、配置MQTT连接、3、实现消息订阅与发布、4、维护心跳与重连机制、5、用户交互与界面设计。 选取相合适的客户端库,构建稳固且具有高效性的通信基础;实施完备的消息订阅与发布机制,确保数据在客户端与服务端间畅通无阻;通过心跳与重…

    2023年12月22日
    69100
  • 什么是数据挖掘中的文本挖掘

    数据挖掘中的文本挖掘是指从文本数据中发掘有价值的信息和知识的过程。其核心观点包括:1、模式识别、2、统计学分析、3、机器学习应用。文本挖掘利用多种技术对非结构化的文本数据进行处理,以发现其中的模式和趋势。这通常涉及如文本分类、情感分析、主题建模等任务。该技术如今广泛应用于市场分析、客户服务、安全监测…

    2023年11月21日
    37500
  • iOS开发的好处有哪些

    iOS开发的好处有:1、使用方便,界面友好;2、界面很安全;3、iOS用户社区庞大;4、操作非常流畅;5、竞争力低。为了给用户提供更高的服务水平,许多智能手机用户对 iOS系统有了更高的要求。 一、使用方便,界面友好 为了给用户提供更高的服务水平,许多智能手机用户对 iOS系统有了更高的要求。利用i…

    2023年5月12日
    22100
  • 多租户与单租户SaaS:哪种更适合您的组织

    多租户和单租户SaaS 是两种不同的软件部署模式,具有不同的特点和优缺点。主要体现在:1、多租户SaaS的特点与优缺点:易于维护、成本效益高、但定制性低;2、单租户SaaS的特点与优缺点:高度定制、安全性强、但成本高;3、如何选择:需根据组织的特定需求、预算和安全性要求来决定。下面对这些关键点进行详…

    2023年9月13日
    39300
  • 对比Jira和Basecamp的项目管理功能

    JIRA和Basecamp作为项目管理工具,各有侧重。1、JIRA擅长于敏捷开发与问题追踪;2、Basecamp注重项目协作与沟通管理。JIRA提供复杂的工作流自定义功能,可以精细地控制任务状态和转换规则,这对软件开发等需要灵活性与精确度的领域尤为重要。而Basecamp设计初衷是简化项目协作流程,…

    2024年1月3日
    26100
  • vscode不出现结果为什么

    VSCode不显示结果可能因为多种原因,包括插件或扩展未正确安装、设置有误、缺少必要的编译器或解释器、代码本身存在错误、或是输出设置不当等。 最常见的问题是输出窗口没有正确配置或者开发者没有注意到输出被发送到了其他地方,如控制台、终端或调试控制台中。 扩展安装和配置是VSCode显示结果正常工作的重…

    2024年4月3日
    14700
  • MySQL的数据存储与查找的原理是什么

    MySQL的数据存储和查找是基于InnoDB存储引擎和B+树数据结构实现的。在存储数据时,InnoDB使用聚簇索引将数据行的实际数据存储在B+树的叶子节点中,从而提高了查询效率;在查找数据时,MySQL使用SQL语句生成查询计划,并通过B+树索引获取数据。 MySQL的数据存储和查找是基于InnoD…

    2023年5月29日
    47600
  • oa虚拟打卡

    标题:OA虚拟打卡的实施与挑战 虚拟打卡技术兴起,成为现代企业管理新趋势。此技术依托于远程定位、移动通讯和数据分析技术,实现员工在非固定工作地点的考勤管理。1、降低成本,减少了实体打卡机的配置及维护费用;2、灵活性强,支持远程工作与灵活工时;3、数据准确性提高,利用电子追踪确保打卡数据的真实有效;4…

    2024年1月16日
    30200
  • 如何看待ChatGPT-4.0在精确信息检索方面的表现

    ChatGPT-4.0 在精确信息检索方面展示了卓越的能力,其主要体现在以下几个核心方面:1、深度学习;2、语义理解的提升;3、交互式学习能力;4、广泛的知识涵盖度。通过深度学习,ChatGPT-4.0能够有效处理海量数据,并从中提取相关信息。语义理解的提升使得它能够更准确地捕捉到用户询问的意图,并…

    2023年11月29日
    36800

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部