MySQL约束详解:从入门到精通

一、主键约束(PRIMARY KEY)

主键约束用于唯一标识表中的每一行数据,确保数据的唯一性和完整性。一个表只能有一个主键,主键列不能包含 NULL 值。

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

二、外键约束(FOREIGN KEY)

外键约束用于在两个表之间建立关系,确保数据的一致性。外键列的值必须是另一个表中主键列的值,或者为 NULL。

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

三、唯一约束(UNIQUE)

唯一约束确保某一列或多个列的组合中的数据是唯一的,防止重复数据的插入。

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

四、检查约束(CHECK)

检查约束用于限制列中的数据必须满足特定的条件。从 MySQL 8.0.17 开始,检查约束被支持。

CREATE TABLE products (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    CHECK (price > 0)
);

五、非空约束(NOT NULL)

非空约束确保某一列不能包含 NULL 值,强制要求插入数据时必须提供该列的值。

CREATE TABLE departments (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    description TEXT
);

六、默认约束(DEFAULT)

默认约束为某一列指定默认值,当插入数据时未提供该列的值,将自动使用默认值。

CREATE TABLE settings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    value VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

七、总结

MySQL中的约束是确保数据完整性和一致性的强大工具。通过合理使用主键、外键、唯一约束、检查约束、非空约束和默认约束,可以有效地组织和管理数据,提高数据库的可靠性和性能。希望本文的示例和讲解对您有所帮助,如果您在使用MySQL约束时有任何疑问,欢迎随时交流探讨!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java皇帝

有帮助就赏点吧,博主点杯水喝喝

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值