约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。
约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。
以下是在 SQLite 中常用的约束。
- CREATE TABLE COMPANY(
- ID INT PRIMARY KEY NOT NULL,
- NAME TEXT NOT NULL,
- AGE INT NOT NULL,
- ADDRESS CHAR(50),
- SALARY REAL
- );
如上 NOT NULL 约束,创建表 COMPANY, 要求 ID,NAME,AGE 字段不能为空。
- CREATE TABLE COMPANY_DEFAULT(
- ID INT PRIMARY KEY NOT NULL,
- NAME TEXT NOT NULL,
- AGE INT NOT NULL,
- ADDRESS CHAR(50),
- SALARY REAL DEFAULT 50000.00
- );
如上 DEFAULT 约束,默认 SALARY 为 50000.00。
- 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
- );
如上 UNIQUE 约束,设置 AGE 字段唯一,表里面不能出现两个相同年龄的内容,并且不能为空。
- CREATE TABLE COMPANY(
- ID INT PRIMARY KEY NOT NULL,
- NAME TEXT NOT NULL,
- AGE INT NOT NULL,
- ADDRESS CHAR(50),
- SALARY REAL
- );
如上 PRIMARY 约束,设置 ID 为主键,用来唯一标识数据库表中的各行 / 记录。
注意:
我们使用主键来引用表中的行。可通过把主键设置为其他表的外键,来创建表之间的关系。由于 "长期存在编码监督",在 SQLite 中,主键可以是 NULL,这是与其他数据库不同的地方。
主键是表中的一个字段,唯一标识数据库表中的各行 / 记录。主键必须包含唯一值。主键列不能有 NULL 值。
一个表只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为复合键。
如果一个表在任何字段上定义了一个主键,那么在这些字段上不能有两个记录具有相同的值。
- 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)
- );
如上 CHECK 约束来限制工资不能小于等于 0,必须大于 0。
来源: