SQL外键约束详解
在数据库设计中,外键约束(Foreign Key Constraint)是非常重要的,它用于维护表之间的引用关系,确保数据的完整性和一致性。本文将深入探讨外键约束的定义、作用、使用场景、性能影响以及在实际开发中的使用建议。 什么是外键约束外键约束是一种数据库约束,它用于强制执行数据表之间的引用完整性。外键约束要求在子表中引用的值必须存在于父表的主键列中,确保子表的记录只能引用父表中有效的记录。 基本概念 父表(Parent Table):被引用的表,通常包含主键 子表(Child Table):引用其他表的表,包含外键列 外键列(Foreign Key Column):子表中用于引用父表主键的列 各数据库的外键约束语法SQLite 写法SQLite 支持外键约束,但默认是关闭的,需要手动开启: 12PRAGMA foreign_keys = ON;PRAGMA foreign_keys; -- 查看外键状态 表级写法: 123456CREATE TABLE games ( id INT PRIMARY KEY, category_id INT, CON...
SQL 的 CHECK 约束详解
CHECK 约束(Check Constraint)是 SQL 中用于保证数据合法性和业务规则一致性的一种约束机制。它允许你为列或列组合定义一个布尔条件表达式,只有当表达式结果为 TRUE 时,数据才能被插入或更新。 CHECK 约束是做什么的?它的作用是: ✅ 限制列中允许存储的数据范围 ✅ 防止不合法、不合理的数据写入数据库 ✅ 将业务规则前移到数据库层,减少程序漏洞 例如: 年龄不能小于 18 金额必须大于 0 状态值只能是指定的几个枚举值 基本语法列级 CHECK1column_name data_type CHECK (condition) 表级 CHECK(推荐,更清晰)1CHECK (condition) 只要 condition 结果不是 TRUE,插入或更新都会失败。 基础示例1️⃣ 简单条件 员工年龄必须 ≥ 18: 12345CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), age INT CHECK (age >= 18)); 尝试插入非...



