SQLite 约束学习笔记

什么是约束?

在 SQLite 中,约束是一种限制数据存储在表中的规则。有几种类型的约束可以使用,包括以下内容:

  • NOT NULL:该列不允许为空。
  • UNIQUE:该列中的所有值必须是唯一的。
  • PRIMARY KEY:该列用于唯一标识表中的每个行。
  • CHECK:指定该列的值必须满足特定条件。
  • FOREIGN KEY:用于确保表之间的数据一致性。

实例

NOT NULL

创建一个名为 users 的表,其中包含 idnameemail 列,其中 nameemail 列不允许为空:

Copy Code
CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT NOT NULL );

UNIQUE

创建一个名为 cars 的表,其中包含一个名为 model 的列,其中每个值都必须是唯一的:

Copy Code
CREATE TABLE cars ( id INTEGER PRIMARY KEY, model TEXT UNIQUE, year INTEGER );

PRIMARY KEY

创建一个名为 orders 的表,其中包含 idcustomerorder_date 列,其中 id 用于唯一标识表中的每个行:

Copy Code
CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer INTEGER, order_date TEXT );

CHECK

创建一个名为 employees 的表,其中包含 idnamesalary 列,其中 salary 必须大于等于 35000:

Copy Code
CREATE TABLE employees ( id INTEGER PRIMARY KEY, name TEXT, salary INTEGER CHECK (salary >= 35000) );

FOREIGN KEY

创建一个名为 orders 的表和一个名为 customers 的表。 在 orders 表中,我们还添加了 customer_id 列,该列是引用 customers 表中 id 列的外键:

Copy Code
CREATE TABLE customers ( id INTEGER PRIMARY KEY, name TEXT ); CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_id INTEGER, order_date TEXT, FOREIGN KEY (customer_id) REFERENCES customers(id) );

以上是 SQLite 约束的一些基本语法和实例,希望能帮助你更好地理解约束的作用和使用。