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