在MySQL中,需要使用约束定义来实现完整性检查和维护。
其中主要的完整性约束类型包括:
主键约束
主键约束用于标识表中的一行数据。它要求该列的值必须唯一且不能为空。
CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT );
外键约束
外键约束用于保证表的数据完整性,它在引用表中定义一个列,指向被引用表中的主键。在插入、更新或删除记录时,如果违反了外键约束,MySQL会阻止这些操作。
CREATE TABLE orders ( id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(id) );
唯一约束
唯一约束用于保证该列的值不重复。和主键约束相比,唯一约束允许空值存在。
CREATE TABLE users ( id INT PRIMARY KEY, username VARCHAR(50) UNIQUE, email VARCHAR(50) UNIQUE );
检查约束
检查约束可以在表中为某一列定义一个条件表达式,用来限制该列所允许的数据。
CREATE TABLE products ( id INT PRIMARY KEY, name VARCHAR(50), price DECIMAL(8, 2), CHECK (price >0) );
MySQL的完整性约束提供了一种有效的方式来保护数据库中的数据免受意外或恶意修改。通过定义适当的约束,可以确保数据的正确性和一致性。