SQLite - 约束条件

SQLite - 约束条件 首页 / SQLite入门教程 / SQLite - 约束条件

约束是对表的数据列强制执行的规则,这些用于限制表的数据类型,这样可以确保数据库中数据的准确性和可靠性。

以下是SQLite中可用的常用约束。

  • NOT NULL          - 确保列不能具有NULL值。

  • DEFAULT            -  如果未指定,则为列提供默认值。

  • UNIQUE              - 确保列中的所有值都不同。

  • PRIMARY KEY   -  唯一标识数据库表中的每一行/记录。

  • CHECK                 - 确保列中的所有值都满足某些条件。

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

INSERT INTO语句未提供特定值时,DEFAULT约束将为列提供默认值。

如,以下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,因此您不能拥有两个具有相同年龄的记录-

链接:https://www.learnfk.comhttps://www.learnfk.com/sqlite/sqlite-constraints.html

来源:LearnFk无涯教程网

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.

您已经在上面看到了许多示例,在这些示例中,无涯教程创建了以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 Constraint使条件能够检查输入到记录中的值,如果条件的计算结果为false,则记录违反约束,并且不会输入到表中。

如,以下SQLite创建一个名为COMPANY的新表并添加五列,在这里,添加了一个带有SALARY的CHECK列,因此您不能有任何SALARY 为 0 的数据。

无涯教程网

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)
);

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出gRPC -〔李林锋〕

Go语言核心36讲 -〔郝林〕

代码精进之路 -〔范学雷〕

程序员的数学基础课 -〔黄申〕

TypeScript开发实战 -〔梁宵〕

全栈工程师修炼指南 -〔熊燚(四火)〕

Netty源码剖析与实战 -〔傅健〕

安全攻防技能30讲 -〔何为舟〕

结构执行力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)