MySQL六种约束是什么
更新时间:2023-09-10MySQL数据库约束的介绍
约束是在表上施加的规则,告诉MySQL如何处理表中的数据在表中的添加、删除、更新或查询。MySQL支持六种约束,包括主键、唯一、非空、默认、外键和检查。
MySQL主键约束
主键约束是一个列或一组列,可唯一地标识表中的每一行数据。主键可以包含数字、字符和符号,不能有重复值。主键约束在数据库设计中起着重要的作用,因为它们可以确保每个行数据都能唯一地被识别。以下是一个简单的主键约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(50) );
MySQL唯一约束
唯一约束是一个列或一组列,确保在表中不存在重复值。唯一约束可以包含数字、字符和符号。唯一约束与主键约束类似,区别在于唯一约束允许NULL值。以下是一个简单的唯一约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, email VARCHAR(50) UNIQUE, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL );
MySQL非空约束
非空约束在表中强制列不允许空值。如果您试图将NULL值插入非空列,则会触发错误。以下是一个简单的非空约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, email VARCHAR(50) NOT NULL, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL );
MySQL默认约束
默认约束用于指定如果未指定值,则使用默认值。默认约束可以被用于任何数据类型,包括数字、日期和字符。以下是一个简单的默认约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, email VARCHAR(50) NOT NULL DEFAULT 'john.doe@example.com', first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL );
MySQL外键约束
外键约束用于链接两个表,并将一个表中的列与另一个表中的主键相关联。外键约束确保了数据完整性,因为您不能删除已链接到另一个表的行。以下是一个简单的外键约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, department_id INT(6), first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL ); CREATE TABLE departments ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, manager VARCHAR(30) ); ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(id);
MySQL检查约束
检查约束用于确保列中的值符合指定条件。如果一个值不满足指定条件,则MySQL拒绝添加、更新或删除表中的行。以下是一个简单的检查约束示例:
CREATE TABLE employees ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, salary DECIMAL(10, 2) NOT NULL, age INT NOT NULL CHECK (age >= 18), first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL );
总结
MySQL提供了六种约束,它们是主键、唯一、非空、默认、外键和检查。这些约束可以确保数据的完整性和一致性,并提供了一些增强数据表的功能。主键和唯一约束由于其独特性而经常被用来链接表,而非空约束确保每个行数据的完整性。默认约束是确保数据的一致性和减少输入错误的有效方式。外键约束链接两个表,并保证数据一致性,而检查约束用于确保数据符合规定约束。程序员应该根据应用场景选择适当的约束,以确保数据表的正确性和稳定性。