约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。
约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。
以下是在 sqlite 中常用的约束。
NOT NulL 约束:确保某列不能有 NulL 值。
DEFAulT 约束:当某列没有指定值时,为该列提供默认值。
UNIQUE 约束:确保某列中的所有值是不同的。
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
CHECK 约束: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,SALARY REAL DEFAulT 50000.00);
UNIQUE 约束
UNIQUE 约束防止在一个特定的列存在两个记录具有相同的值。在 COMPANY 表中,例如,您可能要防止两个或两个以上的人具有相同的年龄。
实例
例如,下面的 sqlite 语句创建一个新的表 COMPANY,并增加了五列。在这里,AGE 列设置为 UNIQUE,所以不能有两个相同年龄的记录:
CREATE table COMPANY( ID INT PRIMARY KEY NOT NulL,AGE INT NOT NulL UNIQUE,SALARY REAL DEFAulT 50000.00);
PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每个记录。在一个表中可以有多个 UNIQUE 列,但只能有一个主键。在设计数据库表时,主键是很重要的。主键是唯一的 ID。
我们使用主键来引用表中的行。可通过把主键设置为其他表的外键,来创建表之间的关系。由于"长期存在编码监督",在 sqlite 中,主键可以是 NulL,这是与其他数据库不同的地方。
主键是表中的一个字段,唯一标识数据库表中的各行/记录。主键必须包含唯一值。主键列不能有 NulL 值。
一个表只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为复合键。
如果一个表在任何字段上定义了一个主键,那么在这些字段上不能有两个记录具有相同的值。
实例
已经看到了我们创建以 ID 作为主键的 COMAPNY 表的各种实例:
CREATE table COMPANY( ID INT PRIMARY KEY NOT NulL,SALARY REAL);
CHECK 约束
CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表。
实例
例如,下面的 sqlite 创建一个新的表 COMPANY,并增加了五列。在这里,我们为 SALARY 列添加 CHECK,所以工资不能为零:
CREATE table COMPANY3( ID INT PRIMARY KEY NOT NulL,SALARY REAL CHECK(SALARY > 0));总结
以上是内存溢出为你收集整理的SQLite学习笔记六: 约束NOT NULL,DEFAULT,UNIQUE,PRIMARY KEY, CHECK全部内容,希望文章能够帮你解决SQLite学习笔记六: 约束NOT NULL,DEFAULT,UNIQUE,PRIMARY KEY, CHECK所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)