2倍速学习网  >  数据库教程  >  MySQL中常见约束有哪些?作用和用法是什么?

MySQL中常见约束有哪些?作用和用法是什么?

1. 主键约束(PRIMARY KEY) 作用:主键约束用于唯一标识表中的每一行记录。主键列的值必须是唯一的,且不允许为NULL。 用法:在创建表时,通过PRIMARY KEY关键字定义主键列。例如: CREATE TABLE users ( id INT AUTO_INCREMENT, ...

在MySQL数据库中,约束(Constraints)是确保数据准确性和可靠性的重要机制。它们限制了可以插入到表中的数据类型,保证了数据的完整性。了解并正确使用这些约束,对于设计高效、健壮的数据库系统至关重要。下面,我们将深入探讨MySQL中几种常见的约束类型,以及它们的作用和用法。

1. 主键约束(PRIMARY KEY)

作用主键约束用于唯一标识表中的每一行记录。主键列的值必须是唯一的,且不允许为NULL。

用法:在创建表时,通过PRIMARY KEY关键字定义主键列。例如:

CREATE TABLE users (
    id INT AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    PRIMARY KEY (id)
);

2. 外键约束(FOREIGN KEY)

作用外键约束用于在两个表之间建立关联,确保一个表中的值对应于另一个表中的值,从而维护表之间的引用完整性。

用法:在创建或修改表时,通过FOREIGN KEY关键字定义外键列,并指定其参照的表和列。例如:

CREATE TABLE orders (
    order_id INT AUTO_INCREMENT,
    user_id INT,
    PRIMARY KEY (order_id),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

3. 唯一约束(UNIQUE)

作用唯一约束保证表中每一行在该列上的值都是唯一的。与主键不同,唯一约束的列允许有多个NULL值(除非列被定义为NOT NULL)。

用法:在创建表时,通过UNIQUE关键字定义唯一约束。例如:

CREATE TABLE emails (
    email_id INT AUTO_INCREMENT,
    email VARCHAR(100),
    UNIQUE (email)
);

4. 检查约束(CHECK)

作用检查约束用于限制列中可以插入的值的范围。它允许你定义一个条件表达式,该表达式必须对所有新值或更新值求值为TRUE。

用法:虽然MySQL 8.0.16之前的版本对CHECK约束的支持有限,但从MySQL 8.0.16开始,CHECK约束得到了全面支持。例如:

CREATE TABLE salaries (
    salary_id INT AUTO_INCREMENT,
    amount DECIMAL(10, 2),
    CHECK (amount > 0),
    PRIMARY KEY (salary_id)
);

5. 非空约束(NOT NULL)

作用非空约束确保列中的每个值都必须是非NULL的

用法:在创建表时,通过在列定义后添加NOT NULL关键字来应用此约束。例如:

CREATE TABLE departments (
    department_id INT AUTO_INCREMENT,
    department_name VARCHAR(50) NOT NULL,
    PRIMARY KEY (department_id)
);

MySQL中常见约束有哪些?作用和用法是什么?

这些约束共同作用于MySQL数据库,确保了数据的准确性、一致性和完整性。通过合理使用这些约束,你可以设计出更加健壮、易于维护的数据库系统。

推荐阅读