好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQLite 约束实例详解

约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。

约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。

以下是在 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,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
); 

 

UNIQUE 约束

UNIQUE 约束防止在一个特定的列存在两个记录具有相同的值。在 COMPANY 表中,例如,您可能要防止两个或两个以上的人具有相同的年龄。

实例

例如,下面的 SQLite 语句创建一个新的表 COMPANY,并增加了五列。在这里,AGE 列设置为 UNIQUE,所以不能有两个相同年龄的记录:

 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 约束

PRIMARY KEY 约束唯一标识数据库表中的每个记录。在一个表中可以有多个 UNIQUE 列,但只能有一个主键。在设计数据库表时,主键是很重要的。主键是唯一的 ID。

我们使用主键来引用表中的行。可通过把主键设置为其他表的外键,来创建表之间的关系。由于"长期存在编码监督",在 SQLite 中,主键可以是 NULL,这是与其他数据库不同的地方。

主键是表中的一个字段,唯一标识数据库表中的各行/记录。主键必须包含唯一值。主键列不能有 NULL 值。

一个表只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为 复合键 。

如果一个表在任何字段上定义了一个主键,那么在这些字段上不能有两个记录具有相同的值。

实例

已经看到了我们创建以 ID 作为主键的 COMAPNY 表的各种实例:

 CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
); 

 

CHECK 约束

CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表。

实例

例如,下面的 SQLite 创建一个新的表 COMPANY,并增加了五列。在这里,我们为 SALARY 列添加 CHECK,所以工资不能为零:

 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)
); 

 

删除约束

SQLite 支持 ALTER TABLE 的有限子集。在 SQLite 中,ALTER TABLE 命令允许用户重命名表,或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的。

查看更多关于SQLite 约束实例详解的详细内容...

  阅读:26次

上一篇

下一篇

第1节:SQLite Alter实例讲解    第2节:SQLite AND和OR 实例应用    第3节:SQLite drop table 删除表    第4节:SQLite Delete实例应用    第5节:SQLite Distinct 实例    第6节:SQLite Explain(解释)    第7节:SQLite Glob 语法与实例    第8节:SQLite Like 实例讲解    第9节:SQLite Insert into 插入数据    第10节:SQLite Group By 实例    第11节:SQLite Limit 应用    第12节:SQLite Indexed By    第13节:SQLite Joins实例    第14节:SQLite Group By Having 实例    第15节:SQLite 简介    第16节:SQLite 教程    第17节:SQLite Update 实例    第18节:SQLite Where 实例讲解    第19节:SQLite 表达式    第20节:SQLite 创建表create table    第21节:SQLite 如何安装    第22节:SQLite Select 查询语句    第23节:SQLite Order By 应用分析    第24节:SQLite 触发器实例详解    第25节:SQLite 别名    第26节:SQLite NULL 详解    第27节:SQLite Unions 实例    第28节:SQLite Pragma 讲解    第29节:SQLite 常用函数大全    第30节:SQLite Vacuum    第31节:SQLite 运算符大全    第32节:SQLite 数据库分离    第33节:SQLite 附加数据库    第34节:SQLite 创建数据库    第35节:SQLite 数据类型    第36节:SQLite 语法大全    第37节:SQLite 命令    第38节:SQLite 索引 Index 实例详解    第39节:SQLite 子查询实例讲解    第40节:SQLite 事务 Transaction实例介绍    第41节:SQLite 视图(View)实例详解    第42节:SQLite 类似Truncate Table语句    第43节:SQLite 约束实例详解    第44节:SQLite 自动递增    第45节:SQLite 防注入    第46节:SQLite 日期与时间