推荐答案
在 SQLite 中,可以通过在 CREATE TABLE
语句中使用 FOREIGN KEY
约束来定义外键。外键用于建立表与表之间的关系,确保数据的完整性和一致性。
CREATE TABLE 表名 ( 列名 数据类型, ... FOREIGN KEY (列名) REFERENCES 关联表名(关联列名) );
例如,定义两个表 Orders
和 Customers
,并在 Orders
表中定义一个外键,引用 Customers
表中的 CustomerID
列:
-- -------------------- ---- ------- ------ ----- --------- - ---------- ------- ------- ---- ---- ---- --- ---- -- ------ ----- ------ - ------- ------- ------- ---- --------- ---- --- ----- ---------- -------- ------- --- ------------ ---------- --------------------- --
本题详细解读
1. 外键的作用
外键用于确保表与表之间的数据一致性。它通过将一个表中的列与另一个表中的列关联起来,确保在插入或更新数据时,引用的数据必须存在于关联表中。
2. 外键的语法
在 SQLite 中,外键的定义通常在 CREATE TABLE
语句中完成。语法如下:
FOREIGN KEY (列名) REFERENCES 关联表名(关联列名)
列名
:当前表中要作为外键的列。关联表名
:被引用的表的名称。关联列名
:被引用表中与外键关联的列。
3. 外键的约束
外键约束可以确保以下行为:
- 插入约束:在插入数据时,外键列的值必须存在于关联表的关联列中。
- 更新约束:在更新外键列时,新值必须存在于关联表的关联列中。
- 删除约束:当关联表中的某一行被删除时,可以指定如何处理外键表中的相关行。常见的处理方式包括:
CASCADE
:级联删除或更新。SET NULL
:将外键列设置为NULL
。RESTRICT
:阻止删除或更新操作。
4. 示例
以下是一个更复杂的示例,展示了如何在 SQLite 中使用外键约束:
-- -------------------- ---- ------- ------ ----- ----------- - ------------ ------- ------- ---- -------------- ---- --- ---- -- ------ ----- --------- - ---------- ------- ------- ---- ------------ ---- --- ----- ------------ -------- ------- --- -------------- ---------- ------------------------- -- ------ ------- -- ------ ------- --
在这个示例中,Employees
表中的 DepartmentID
列是一个外键,引用了 Departments
表中的 DepartmentID
列。当 Departments
表中的某一行被删除时,Employees
表中对应的行也会被级联删除。