数据库中7个Constraint(约束)的概念区分

本文深入讲解数据库中的七大约束类型:Key、Entity、Domain、Notnull、Referential integrity、Participation及Cardinality,涵盖从基本定义到具体应用的全方位解读。

!!!注意: 读此篇文章前,如果有key概念不懂,请见我的博客:
https://blog.youkuaiyun.com/qq_37486501/article/details/84103476

数据库中7个Constraint(约束)的概念区分

  • Key Constraint: key值不可重复
    candidate key can not be duplicated.
  • Entity Constraint: 实体存在
    Prime attribute can not be null.
  • Domain Constraint: 领域约束
Domain Constraint: 领域约束——有三个:
data type
value range
format
  • Not null Constraints: 非空约束
    不可为空
  • Referential integrity constraints 资料完整性
    必须有主键才可以有外来键
  • Participation constraints 参与限制
Participation constraints参与限制——有两个:
total participation 全部参加
partial participation 部分参加
  • Cardinality constraint(Quantity ratio) 数量限制
Cardinality constraint(Quantity ratio)数量限制—— 有三个:
1:1(一对一)
m:1(多对一)
m:n(多对多)
### 数据库约束的用途与实例 #### 什么是数据库约束数据库约束是在表定义中设置的一系列规则,用于确保数据的完整性和一致性。这些规则可以应用于列级别或表级别,以防止不符合条件的数据被插入到数据库中[^1]。 #### 主要类型的约束及其作用 ##### 1. **主键(Primary Key)** 主键是一种唯一标识符,用来区分同一张表内的不同记录。它不允许存在重复值和NULL值。 ```sql CREATE TABLE Employees ( EmployeeID int NOT NULL, FirstName varchar(255), LastName varchar(255), PRIMARY KEY (EmployeeID) ); ``` ##### 2. **外键(Foreign Key)** 外键建立两个表格之间的关系,通常作为参照完整性的一部分来维护关联表间的关系。如果尝试删除父表中的某条记录而子表中有依赖于该记录的数据,则会抛出异常。 ```sql ALTER TABLE Orders ADD CONSTRAINT FK_CustomerOrder FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID); ``` ##### 3. **唯一性(Unique)** 此约束保证某一特定字段内不会出现相同的值两次以上;它可以是一个单独的属性也可以是一组组合起来形成唯一的索引。 ```sql CREATE UNIQUE INDEX idx_email ON Users(email); ``` ##### 4. **非空(Not Null)** 指定某些字段不能为空,在创建新纪录时必须提供相应的值。 ```sql CREATE TABLE Persons ( ID int NOT NULL, Name varchar(255) NOT NULL, Age int ); ``` ##### 5. **默认值(Default Value)** 当向表中插入一条新的记录却没有给定某个具体字段的内容时,默认值将会自动填充进去。 ```sql CREATE TABLE Products ( ProductID int NOT NULL, ProductName varchar(255) DEFAULT 'Unknown', Price money ); ``` ##### 6. **检查(Check Constraint)** 允许设定更复杂的逻辑表达式来进行验证操作前后的状态变化情况,比如范围限制等。 ```sql CREATE TABLE Students ( StudentID int NOT NULL, FullName nvarchar(50), GradeLevel tinyint CHECK (GradeLevel >= 1 AND GradeLevel <= 12) ); ``` 通过上述几种常见的约束机制,能够有效地提高应用程序的安全性和可靠性,并减少因人为失误造成的潜在风险。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laura_Wangzx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值