- SQLite 教程
- SQLite - 首页
- SQLite - 概述
- SQLite - 安装
- SQLite - 命令
- SQLite - 语法
- SQLite - 数据类型
- SQLite - 创建数据库
- SQLite - 附加数据库
- SQLite - 分离数据库
- SQLite - 创建表
- SQLite - 删除表
- SQLite - INSERT 查询
- SQLite - SELECT 查询
- SQLite - 运算符
- SQLite - 表达式
- SQLite - WHERE 子句
- SQLite - AND & OR 子句
- SQLite - UPDATE 查询
- SQLite - DELETE 查询
- SQLite - LIKE 子句
- SQLite - GLOB 子句
- SQLite - LIMIT 子句
- SQLite - ORDER BY 子句
- SQLite - GROUP BY 子句
- SQLite - HAVING 子句
- SQLite - DISTINCT 关键字
- 高级 SQLite
- SQLite - PRAGMA
- SQLite - 约束
- SQLite - JOIN
- SQLite - UNION 子句
- SQLite - NULL 值
- SQLite - 别名语法
- SQLite - 触发器
- SQLite - 索引
- SQLite - INDEXED BY 子句
- SQLite - ALTER 命令
- SQLite - TRUNCATE 命令
- SQLite - 视图
- SQLite - 事务
- SQLite - 子查询
- SQLite - AUTOINCREMENT
- SQLite - 注入
- SQLite - EXPLAIN
- SQLite - VACUUM
- SQLite - 日期和时间
- SQLite - 有用函数
- SQLite 有用资源
- SQLite - 快速指南
- SQLite - 有用资源
- SQLite - 讨论
SQLite - 约束
约束是强制应用于表中数据列的规则。它们用于限制可以进入表的 数据类型。这确保了数据库中数据的准确性和可靠性。
约束可以是列级别或表级别。列级别约束仅应用于一列,而表级别约束应用于整个表。
以下是 SQLite 中常用的约束。
NOT NULL 约束 − 确保列不能具有 NULL 值。
DEFAULT 约束 − 当未指定值时,为列提供默认值。
UNIQUE 约束 − 确保列中的所有值都不同。
PRIMARY KEY − 唯一标识数据库表中的每一行/记录。
CHECK 约束 − 确保列中的所有值都满足某些条件。
NOT NULL 约束
默认情况下,列可以保存 NULL 值。如果您不希望列具有 NULL 值,则需要在此列上定义此约束,指定该列不允许 NULL 值。
NULL 与没有数据不同,它表示未知数据。
示例
例如,以下 SQLite 语句创建一个名为 COMPANY 的新表,并添加五列,其中三列 ID、NAME 和 AGE 指定不接受 NULL 值。
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
DEFAULT 约束
DEFAULT 约束在 INSERT INTO 语句未提供特定值时为列提供默认值。
示例
例如,以下 SQLite 语句创建一个名为 COMPANY 的新表,并添加五列。这里,SALARY 列默认为 5000.00,因此,如果 INSERT INTO 语句未为此列提供值,则此列将默认为 5000.00。
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
UNIQUE 约束
UNIQUE 约束可防止两条记录在特定列中具有相同的值。例如,在 COMPANY 表中,您可能希望防止两个人拥有相同的年龄。
示例
例如,以下 SQLite 语句创建一个名为 COMPANY 的新表,并添加五列。这里,AGE 列设置为 UNIQUE,因此您不能有两条具有相同年龄的记录 −
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每一行记录。可以有多个 UNIQUE 列,但表中只有一个主键。设计数据库表时,主键非常重要。主键是唯一 ID。
我们使用它们来引用表行。在创建表之间的关系时,主键成为其他表中的外键。由于“长期编码疏忽”,SQLite 中的主键可以为 NULL。其他数据库并非如此。
主键是表中的一个字段,它唯一标识数据库表中的每一行/记录。主键必须包含唯一值。主键列不能具有 NULL 值。
一个表只能有一个主键,它可以由单个或多个字段组成。当多个字段用作主键时,它们被称为组合键。
如果表在任何字段上定义了主键,则不能有两条记录具有该字段的相同值。
示例
您已经在上面的各种示例中看到了我们使用 ID 作为主键创建 COMPANY 表的情况。
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
CHECK 约束
CHECK 约束允许检查输入记录的值的条件。如果条件计算结果为 false,则记录违反约束,不会输入到表中。
示例
例如,以下 SQLite 创建一个名为 COMPANY 的新表,并添加五列。这里,我们在 SALARY 列中添加一个 CHECK,以便您不能有任何为零的 SALARY。
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );
删除约束
SQLite 支持 ALTER TABLE 的有限子集。SQLite 中的 ALTER TABLE 命令允许用户重命名表或向现有表添加新列。无法重命名列、删除列或向表添加或删除约束。