📜  SQLite-约束(1)

📅  最后修改于: 2023-12-03 15:35:07.540000             🧑  作者: Mango

SQLite 约束

在 SQLite 中,约束用于强制表中的数据符合指定的规则。SQLite 支持以下约束:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
NOT NULL 约束

NOT NULL 约束强制列不能有 NULL 值。

示例:

CREATE TABLE Persons (
    PersonID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

以上 SQL 语句创建了一个名为 "Persons" 的表,其中 "PersonID"、"LastName" 和 "FirstName" 列是不允许为空的。

UNIQUE 约束

UNIQUE 约束唯一标识数据库表中的每条记录。

示例:

CREATE TABLE Persons (
    PersonID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

以上 SQL 语句创建了一个名为 "Persons" 的表,其中 "PersonID" 列是唯一标识符。这意味着不能有两个或更多行具有相同的 PersonID 值。

PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须是唯一的,并且不能为 NULL。

示例:

CREATE TABLE Persons (
    PersonID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

以上 SQL 语句创建了一个名为 "Persons" 的表,其中 "PersonID" 列是唯一标识符和主键。

FOREIGN KEY 约束

FOREIGN KEY 约束用于预防破坏表之间连接的动作,例如删除主表中的记录。

示例:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

以上 SQL 语句创建了一个名为 "Orders" 的表,其中 "PersonID" 列是 "Persons" 表中的外键。

CHECK 约束

CHECK 约束用于限制列中的值的范围。

示例:

CREATE TABLE Persons (
    PersonID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CHECK (Age>=18)
);

以上 SQL 语句创建了一个名为 "Persons" 的表,其中 "Age" 列的值必须大于或等于 18。如果在插入或更新过程中违反了 CHECK 约束,则操作将被中止,并且不会保存更新。