一、SQLite约束之NOT NULL
确保某列不能有 NULL 值。默认情况下,列可以保存 NULL 值。如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值。
NULL 与没有数据是不一样的,它代表着未知的数据。
1、限制字段A的值不能为NULL值
create table_name (字段A 数据类型 NOT NULL, 字段B 数据类型, … 字段N 数据类型)
二、SQLite约束之DEFAULT
当某列没有指定值时,为该列提供默认值。DEFAULT 约束在 INSERT INTO 语句没有提供一个特定的值时,为列提供一个默认值。
1、给字段A设置默认值
create table_name (字段A 数据类型 defulte 默认值, 字段B 数据类型, … , 字段N 数据类型)
三、SQLite约束之UNIQUE
确保某列中的所有值是不同的。UNIQUE 约束防止在一个特定的列存在两个记录具有相同的值。
1、约束字段A不能又相同的值
create table_name (字段A 数据类型 unique, 字段B 数据类型,… , 字段N 数据类型)
四、SQLite约束之PRIMARY Key
唯一标识数据库表中的各行/记录。PRIMARY KEY 约束唯一标识数据库表中的每个记录。在一个表中可以有多个 UNIQUE 列,但只能有一个主键。在设计数据库表时,主键是很重要的。主键是唯一的 ID。
1、设置字段A为主键
create table_name (字段A 数据类型 primary key, 字段B 数据类型, …, 字段N 数据类型)
2、设置字段A为自增长主键
create table_name (字段A integer primary key autoincrement, 字段B 数据类型, …, 字段N 数据类型)
五、SQLite约束之CHECK
CHECK 约束确保某列中的所有值满足一定条件。CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表
1、约束字段A(数据类型:integer)的值不能小于100
create table_name (字段A integer c, 字段B 数据类型, …check(字段A > 100), 字段N 数据类型)
注:SQLite 支持 ALTER TABLE 的有限子集。在 SQLite 中,ALTER TABLE 命令允许用户重命名表,或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的。