📅  最后修改于: 2023-12-03 14:47:34.774000             🧑  作者: Mango
在关系型数据库系统中,SQL(Structured Query Language)约束是用于保持数据完整性和一致性的规则。约束规定了数据库表中的数据必须满足的条件。当数据违反约束条件时,系统将阻止对表的更新或插入操作。
常见的 SQL 约束有以下几种类型:
主键约束(Primary Key Constraint):确保表中的某一列或一组列唯一标识每一行数据的值。主键约束会自动创建索引,以提高查询性能。
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
外键约束(Foreign Key Constraint):用于建立表之间的关联关系。外键约束将一个表的字段与另一个表的主键或唯一键进行关联,保证数据的完整性和一致性。
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product_id INT,
customer_id INT,
FOREIGN KEY (product_id) REFERENCES products(id),
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
唯一约束(Unique Constraint):确保表中的某一列或一组列的值是唯一的,允许包含空值。一个表可以有多个唯一约束。
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE
);
非空约束(Not Null Constraint):确保表中的某一列的值不为空。
CREATE TABLE books (
id INT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL
);
检查约束(Check Constraint):定义了列中允许的值的范围或条件。检查约束可以是简单的比较操作,也可以是复杂的表达式。
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10,2),
CHECK (price > 0)
);
默认约束(Default Constraint):为表中的某一列指定默认值。
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
joining_date DATE DEFAULT CURRENT_DATE
);
以上是 SQL 中常见的约束类型,通过使用这些约束,我们可以保证数据库的数据完整性和一致性。