网站中文章内图片做超链接,wordpress 3 企业主题下载,北京计算机编程培训学校,城阳在线网站建设前面学习了SQLite数据库的常见使用方法#xff0c;其中包含许多约束#xff0c;常见的如NOT NULL、DEFAULT、UNIQUE、PRIMARY KEY#xff08;主键#xff09;、CHECK等 
本篇文章主要介绍这些约束在SQLite中的使用 目录 什么是约束NOT NULL 约束DEFAULT约束UNIQUE约束PRIMA…前面学习了SQLite数据库的常见使用方法其中包含许多约束常见的如NOT NULL、DEFAULT、UNIQUE、PRIMARY KEY主键、CHECK等 
本篇文章主要介绍这些约束在SQLite中的使用 目录 什么是约束NOT NULL 约束DEFAULT约束UNIQUE约束PRIMARY KEY约束CHECK约束删除约束  什么是约束 
约束是在数据库表中的某列字段上强制执行的规则用以限制插入表中的数据类型确保数据库中的数据的准确性和可靠性 
约束分为列级约束和表级约束前者适用于列后者应用于整个表 
NOT NULL 约束 
默认情况下列可以保存NULL值这个约束就是确保某列字段中不能有NULL值但并不意味着没有数据NULL代表着未知的数据 
下面用SQLite语句创建了一个表t_Student并增加了4列并给NAME列、AGE列设置为NOT NULL 
CREATE TABLE t_Student (ID INT PRIMARY KEY,NAME TEXT NOT NULL,AGE INT NOT NULL,SCORE REAL
);只要声明为PRIMARY KEY就说明是一个主键字段主键字段默认包含了NOT NULL和UNIQUE两个约束 
DEFAULT约束 
对于设置了DEFAULT约束的某列字段中在其中INSERT INTO插入数据而没有为改列提供值时该列值将被这值为一个指定的默认值 
下面用SQLite语句创建了一个表t_Student并增加了4列并给SCORE列设置为DEFAULT 
CREATE TABLE t_Student (ID INT PRIMARY KEY,NAME TEXT NOT NULL,AGE INT NOT NULL,SCORE REAL DEFAULT 137.00
);意味着当INSERT INTO语句没有为该列提供值时该列将被设置为137.00 
UNIQUE约束 
此约束防止在某个列上存在两个或两个以上相同的值比如有时可能会需要防止两个或两个以上的人具有相同的姓名 
下面用SQLite语句创建了一个表t_Student并增加了4列这里NAME列设置为UNIQUE 
CREATE TABLE t_Student(ID INT PRIMARY KEY,NAME TEXT NOT NULL UNIQUE,AGE INT NOT NULL,SCORE REAL DEFAULT 137.00
);从而保证不能有两个同名的数据 
PRIMARY KEY约束 
PRIMARY KEY主键约束起到一个身份认证的作用标识着数据表中的每行数据且每一个认证都是唯一的 我们使用主键来引用表中的行。可通过把主键设置为其他表的外键来创建表之间的关系。由于长期存在编码监督在 SQLite 中主键可以是 NULL这是与其他数据库不同的地方。 主键是表中的一个字段唯一标识表中的各行/记录 上面也提到只要声明为PRIMARY KEY就说明是一个主键字段主键字段默认包含了NOT NULL和UNIQUE两个约束所以主键字段必须包含唯一值且主键列不能有NULL值 
一个表只能有一个主键它可以由一个或多个字段组成当多个字段作为主键它们被称为复合键。如果一个表在任何字段上定义了一个主键那么在这些字段上不能有两个相同的值 
CREATE TABLE t_Student(ID INT PRIMARY KEY AUTOINCREMENT,NAME TEXT NOT NULL UNIQUE,AGE INT NOT NULL,SCORE REAL DEFAULT 137.00
);如果想要让主键自动增长必须是INTEGER类型应该增加AUTOINCREMENT约束这样在插入新数据时就算不给主键比如ID赋值也会沿着最后一个ID的值依次赋值 
这里ID设置为主键且设置为自动增长把表中的数据删除后重新插入新的数据ID的编号不是从1开始而是接着之前的ID进行编号 
示例  
从上图也可以看出DEFAUT的作用并未给SCORE赋值默认值就时137.00当然也没有给主键ID设值若没有AUTOINCREMENT那么ID列就会无数据展示 
CHECK约束 
CHECK约束用于启用输入一行数据要检查值的条件如果条件值为FALSE则数据违反了约束且不能输入到表中 
下面的SQLite语句创建了一个表t_Student并增加了4列这里AGE列添加CHECK 
CREATE TABLE t_Student(ID INT PRIMARY KEY AUTOINCREMENT,NAME TEXT NOT NULL UNIQUE,AGE INT CHECK(AGE  17),SCORE REAL DEFAULT 137.00
);表示年龄不能低于18 
删除约束 
在SQLite中ALTER TABLE允许用户重命名表或向先有的表添加一个新的列。但重命名列删除一列或从一个表中添加或删除约束都是不可能的