在MySQL中,约束(Constraints)是用来确保数据表中的数据满足特定条件的规则。它们有助于维护数据的完整性和准确性。以下是一些常见的约束类型及其在MySQL中的写法:
主键约束用于唯一标识表中的每一行数据。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
唯一约束确保表中某一列或多列的值是唯一的。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);
非空约束确保某一列的值不能为空。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
默认值约束为某一列指定一个默认值。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
status VARCHAR(50) DEFAULT 'active'
);
外键约束用于建立两个表之间的关系。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id)
);
CREATE TABLE classes (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
);
检查约束用于确保某一列的值满足特定的条件。MySQL不直接支持检查约束,但可以通过触发器来实现类似的功能。
DELIMITER $$
CREATE TRIGGER check_age
BEFORE INSERT ON students
FOR EACH ROW
BEGIN
IF NEW.age < 0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Age cannot be negative';
END IF;
END$$
DELIMITER ;
通过合理使用这些约束,可以确保数据库中的数据更加完整和准确。
领取专属 10元无门槛券
手把手带您无忧上云