温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Table表中的约束条件有哪些类型

发布时间:2026-07-01 03:08:23 来源:亿速云 阅读:87 作者:小樊 栏目:数据库

在数据库(通常指关系型数据库,如 MySQL、Oracle、SQL Server、PostgreSQL 等)中,Table(表)的约束条件用于保证数据的完整性、准确性和一致性。常见的约束类型主要有以下几种:


一、常见约束类型

1️⃣ 主键约束(PRIMARY KEY)

  • 作用:唯一标识表中的每一条记录
  • 特点
    • 值唯一
    • 不能为 NULL
    • 一个表只能有一个主键(但可以是复合主键)
CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

2️⃣ 唯一约束(UNIQUE)

  • 作用:保证某一列或多列的值在表中唯一
  • 特点
    • 允许 NULL(但大多数数据库只允许一个 NULL
    • 一个表可以有多个唯一约束
CREATE TABLE user (
    id INT,
    email VARCHAR(100) UNIQUE
);

3️⃣ 非空约束(NOT NULL)

  • 作用:列中不能有 NULL
  • 特点
    • 只作用于单列
    • 常用于必填字段
CREATE TABLE student (
    id INT,
    name VARCHAR(50) NOT NULL
);

4️⃣ 外键约束(FOREIGN KEY)

  • 作用:保证数据的引用完整性
  • 特点
    • 建立表与表之间的关系
    • 值必须存在于另一张表的主键或唯一键中
CREATE TABLE order (
    order_id INT PRIMARY KEY,
    student_id INT,
    FOREIGN KEY (student_id) REFERENCES student(id)
);

5️⃣ 检查约束(CHECK)

  • 作用:限制列的取值范围
  • 特点
    • 条件必须为真
    • MySQL 在 8.0.16 之前忽略 CHECK
CREATE TABLE student (
    age INT CHECK (age >= 0 AND age <= 120)
);

6️⃣ 默认值约束(DEFAULT)

  • 作用:当插入数据未指定值时,使用默认值
  • 特点
    • 不是严格意义上的“约束”,但常归类于此
CREATE TABLE student (
    gender CHAR(1) DEFAULT 'M'
);

7️⃣ 自增约束(AUTO_INCREMENT / IDENTITY)

  • 作用:自动生成唯一数值
  • 特点
    • 常用于主键
    • 不同数据库实现不同
-- MySQL
id INT AUTO_INCREMENT PRIMARY KEY;

二、约束分类总结

约束类型 是否唯一 是否允许 NULL 主要作用
PRIMARY KEY 唯一标识记录
UNIQUE 保证唯一性
NOT NULL 禁止空值
FOREIGN KEY 维护引用完整性
CHECK 限制取值范围
DEFAULT 提供默认值

三、表级约束 vs 列级约束

  • 列级约束:定义在列上
name VARCHAR(50) NOT NULL
  • 表级约束:定义在表上,适合复合约束
PRIMARY KEY (id, course_id)

如果你需要,我也可以结合 MySQL / Oracle / SQL Server 的具体语法或实际面试常见问题来进一步讲解。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI