📅  最后修改于: 2023-12-03 15:35:07.540000             🧑  作者: Mango
在 SQLite 中,约束用于强制表中的数据符合指定的规则。SQLite 支持以下约束:
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 约束唯一标识数据库表中的每条记录。
示例:
CREATE TABLE Persons (
PersonID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
以上 SQL 语句创建了一个名为 "Persons" 的表,其中 "PersonID" 列是唯一标识符。这意味着不能有两个或更多行具有相同的 PersonID 值。
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 约束用于预防破坏表之间连接的动作,例如删除主表中的记录。
示例:
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 约束用于限制列中的值的范围。
示例:
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 约束,则操作将被中止,并且不会保存更新。