mysql写出实体完整性和参照完整性的定义,及举例说明。
时间: 2024-10-23 11:05:21 浏览: 39
在MySQL中,实体完整性(Entity Integrity)和参照完整性(Referential Integrity)是数据库约束规则的重要组成部分,用于保证数据的准确性和一致性。
**实体完整性**:
实体完整性是指在一个表中的每一个主键字段或唯一键字段都必须有唯一的值。如果一个列被声明为主键,那么这个列不允许包含NULL值,并且每个值在整个表中必须是唯一的。例如,在员工表(Employees)中,员工ID(EmpID)作为主键,每个员工都有唯一的ID,如果尝试插入一个已存在的ID,就会违反实体完整性。
```sql
CREATE TABLE Employees (
EmpID INT PRIMARY KEY,
Name VARCHAR(50),
DepartmentId INT
);
```
在这个例子中,EmpID确保了每名员工的独特标识。
**参照完整性**:
参照完整性涉及到两个表之间的关联,确保引用另一个表的外键值存在于被引用的主键表中。当我们在一个表(如Orders)中添加一个指向另一个表(Customers)的外键(CustomerID),则必须确保所有订单的客户ID都在客户表中存在。若试图删除一个客户,而该客户仍有未完成的订单,则参照完整性会阻止这个操作。
```sql
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
ProductName VARCHAR(50),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
```
在这里,`FOREIGN KEY`关键字用于定义参照完整性,防止删除不存在的客户记录。
阅读全文