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约束

唯一约束可以防止在某一列中存在两个相同的记录。例如,对于COMPANY表,您可能希望防止两个或多个人具有相同的年龄。

示例

例如,下面的SQLite语句创建了一个名为COMPANY的新表,并添加了五个列。在这里,AGE列被设置为唯一,这样就不能有两条具有相同年龄的记录。

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约束

主键约束在数据库表中唯一标识每条记录。可以有多个唯一列,但一个表只能有一个主键。主键在设计数据库表时非常重要。主键是唯一的标识符。

我们使用它们来引用表行。在创建表之间的关系时,主键会变成其他表中的外键。由于“长期存在的编码失误”,SQLite中的主键可以是NULL。其他数据库不允许这种情况。

主键是一个表中用于唯一标识每行记录的字段。主键必须包含唯一的值。主键列不能有NULL值。

一个表只能有一个主键,可以由单个或多个字段组成。当多个字段被用作主键时,它们被称为复合键。

如果一个表在任何字段上定义了主键,那么不能有两条记录具有相同的字段值。

示例

您已经在上面的各种示例中看到了我们如何使用ID创建公司表的主键。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

CHECK约束

检查约束使得可以检查插入记录的值是否满足某个条件。如果条件计算结果为false,则表示该记录违反了约束,不能被插入到表中。

示例

例如,下面的SQLite语句创建一个名为COMPANY的新表,并添加了五个列。在这里,我们使用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命令允许用户重命名表或向现有表中添加新列。无法重命名列、删除列或向表中添加或移除约束。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程