boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

约束条件在mysql中如何理解


avatar
作者 2025年10月12日 6

主键约束确保每行数据唯一且非空,一个表仅能有一个主键,可由单列或多列组成,自动创建唯一索引;例如id int PRIMARY KEY。

约束条件在mysql中如何理解

mysql 中,约束条件是用来限制表中数据的规则,确保数据的准确性、一致性和完整性。它们在创建表(CREATE table)或修改表(ALTER TABLE)时定义,防止不符合规范的数据被插入、更新或删除。

1. 主键约束(PRIMARY KEY)

主键用于唯一标识表中的每一行数据,不能为 NULL,且必须唯一。

  • 一个表只能有一个主键
  • 可以是单个字段,也可以是多个字段的组合(复合主键)
  • 自动创建唯一索引,提升查询效率

例如:
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));

2. 唯一约束(UNIQUE)

确保某列或多列的值在整个表中是唯一的,但允许有 NULL 值(NULL 可以出现多次)。

  • 一个表可以有多个唯一约束
  • 常用于邮箱、身份证号等需要唯一性的字段

例如:
CREATE TABLE users (email VARCHAR(100) UNIQUE);

3. 非空约束(NOT NULL)

规定某列不能存储 NULL 值,必须提供有效数据。

约束条件在mysql中如何理解

如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

约束条件在mysql中如何理解27

查看详情 约束条件在mysql中如何理解

  • 常与默认值(default)配合使用
  • 避免数据缺失导致逻辑错误

例如:
CREATE TABLE users (name VARCHAR(50) NOT NULL);

4. 默认值约束(DEFAULT)

当插入数据时未指定某列的值,系统会自动使用默认值填充。

  • 适用于创建时间、状态字段等有固定初始值的场景

例如:
CREATE TABLE orders (status VARCHAR(20) DEFAULT ‘pending’);

5. 外键约束(FOREIGN KEY)

用于建立两个表之间的关联,确保引用的值在被引用表中存在,维护数据的一致性。

  • 外键指向另一个表的主键或唯一键
  • 防止非法数据插入,比如订单中的用户 ID 必须存在于用户表中
  • 可设置级联操作(CAScadE),如删除用户时自动删除其订单

例如:
CREATE TABLE orders (user_id INT, FOREIGN KEY (user_id) REFERENCES users(id));

6. 检查约束(CHECK)

定义某列的取值范围或条件,只有满足条件的数据才能插入或更新。

  • MySQL 8.0+ 支持 CHECK 约束(早期版本会解析但不执行)
  • 可用于限制年龄、价格等数值范围

例如:
CREATE TABLE students (age INT CHECK (age >= 0 AND age

基本上就这些。合理使用约束能减少应用层的数据校验压力,提升数据库的可靠性。虽然约束会带来少量性能开销,但在大多数场景下,数据完整性比这点性能更重要。



评论(已关闭)

评论已关闭

text=ZqhQzanResources