SQLite – CONSTRAINTS(约束)
约束是数据列在表上执行的规则。这些是用来限制的数据类型可以进入一个表。这样可以确保数据的准确性和可靠性在数据库中。
级或表级约束可以列。列级约束是仅适用于一个列在表级约束应用于整个表。
以下是常用的约束在SQLite。
- NOT NULL Constraint: 确保列不能为空值。
- DEFAULT Constraint : 提供了一个列的默认值时没有指定。
- UNIQUE Constraint: 确保列中的所有值是不同的。
- PRIMARY Key: 惟一地标识每个行/记录在一个数据库表中。
- CHECK Constraint: 检查约束确保列中的所有值满足某些条件。
Not Null Constraint约束
默认情况下,一个列可以容纳NULL值。如果你不想要一个列有一个空值,那么您需要定义这些约束在这列指定NULL列现在不允许。
空不等于没有数据,相反,它代表了未知数据。
例子:
例如,下面的SQLite语句创建一个新的表称为公司,增加了五列,三,ID和姓名和年龄,不接受指定null:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
DEFAUL约束
默认约束提供了一个默认值时,一列插入语句不提供一个特定的值。
例子:
例如,下面的SQLite语句创建一个新的表称为公司和5列补充道。这里,薪水列默认设置为5000.00,所以如果插入语句为本专栏不提供一个值,那么默认情况下,本专栏将被设置为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
);
UUNIQUE(唯一)约束
独特的约束阻止两个记录有相同的值在一个特定的列。公司的表,例如,您可能想要阻止两个或两个以上的人拥有相同的年龄。
例子:
例如,下面的SQLite语句创建一个新的表称为公司和5列补充道。列在这里,年龄是独一无二的,所以你不能有两个记录相同的年龄:
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约束
主键约束惟一地标识每个记录在一个数据库表中。可以有更多独特的列,但只有一个表中的主键。主键是重要的在设计数据库表。主键是唯一的id。
我们用它们来参考表行。主键成为其他表的外键,当创建表之间的关系。由于长期存在的编码监督,主键在SQLite可以为空。与其他数据库情况并非如此。
主键是表中的一个字段唯一地标识每一行/记录在一个数据库表中。主键必须包含唯一的值。一个主键列不能为空值。
一个表只能有一个主键,可能由单个或多个字段。当使用多个字段主键,他们被称为一个composite key(复合键)。
如果一个表定义一个主键字段(s),那么你不能有两个记录有相同的值,字段(s)。如果一个表上定义一个主键
例子:
你已经看过上面各种示例,我们创造了公司的表与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,记录违反约束,不输入到表。
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)
);
Dropping约束:
SQLite支持有限子集的ALTER TABLE。SQLite的ALTER TABLE命令允许用户重命名一个表或添加一个新的列到现有的表。不能重命名一个列,删除一列,或者从一个表添加或删除约束。