美文网首页
SQLite学习(五)

SQLite学习(五)

作者: 须左能乎 | 来源:发表于2018-01-21 21:52 被阅读15次

数据完整性

==数据完整性==用于定义和保护表内部或表之间数据的关系。有四种完整性:域完整性实体完整性参照完整性用户定义完整性

一、实体完整性

唯一约束

一个唯一约束要求一个字段或一组 字段的所有值互不相同,或者说唯一。

NULL 和 UNIQUE:
问题1:如果一个字段已经声明为 UNIQUE,可以向这个字段插入多少个 NULL 值?
回答:与数据库的种类有关。PostgreSQL 和 Oracle 可以插入多个。Informix 和 Microsoft SQL Server只能一个。DB2、SQLAnywhere和Borland Inter-Base不能。SQLite采用了与PostgreSQL 和 Oracle 相同的解决方案。

问题2:两个 NULL 值是否相等?
回答:你没有足够的信息 来证明它们相等,但也没有足够的信息证明它们不等。 SQLite 的观点是假设所有的 NULL 都是不同的。所以你可以向唯一字段中插入任意多个 NULL 值。

主键约束

在 SQLite 中,当你定义一个表时总要确定一个主键,不管你自己有没有定义。这个字段是 一个 64-bit 整型字段,称为 ROWID。它还有两个别名——ROWID和 OID,用这两个别名 同样可以取到它的值。它的默认取值按照增序自动生成。 SQLite 为主键字段提供自动增长 特性。

二、域完整性

默认值

保留字 DEFAULT为字段提供一个默认值。如果用 INSERT 语句插入记录时没有为该定做指定值,则为它赋默认值。DEFAULT不是一个约束 (constraint),因为它没有强制任何事情。 这所以把它归为域完整性,是因为它提供了处理 NULL 值的一个策略。

DEFAULT还可以接受 3 种预定义格式的 ANSI/ISO 预定字用于生成日期和时间值。
CURRENT_TIME 将会生成 ANSI/ISO 格式(HH:MM:SS)的当前时间。 CURRENT_DATE 会生成当前日期(格式为 YYYY-MM-DD)。CURRENT_TIMESTAMP 会生成一个日期时间的组 合(格式为 YYYY-MM-DDHH:MM:SS)。

创建times表:

sqlite> CREATE TABLE times (id int, 
   ...> date NOT NULL DEFAULT CURRENT_DATE,
   ...> time NOT NULL DEFAULT CURRENT_TIME,
   ...> timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP);

插入数据:

sqlite> INSERT INTO times (id) VALUES (1);
sqlite> INSERT INTO times (id) VALUES (2);
sqlite> INSERT INTO times (id) VALUES (4);
结果如下: image.png

相关文章

  • SQLite学习(五)

    数据完整性 ==数据完整性==用于定义和保护表内部或表之间数据的关系。有四种完整性:域完整性、实体完整性、参照完整...

  • iOS数据持久化(4)-SQLite

    学习SQLite不是本文的目的,所以关于SQLite的学习,请查找其他资料,本文的重点是iOS上使用SQLite入...

  • Android数据库代码优化(2) - 从SQLite说起

    从SQLite说起 如果没有SQLite的基础,我们只是从Android封装的SQLite API去学习的话,难免...

  • SQLite 学习

    SQLite简介 SQLite是一个小型数据库,它被集成到Android系统中完成数据库部分。它不需要进行配置和管...

  • SQLite 日期 & 时间

    SQLite 日期 & 时间 SQLite 支持以下五个日期和时间函数: 上述五个日期和时间函数把时间字符串作为参...

  • android笔记6

    本章学习目标: 了解SQLite数据库的特点和体系结构 掌握SQLite数据库的建立和操作方法 SQlite介绍 ...

  • IOS开发 Sqlite数据库

    本节学习内容: 1.Sqlite数据为基本概念 2.Sqlite数据库基本创建 3.Sqlite数据库基本使用 C...

  • UNI-APP 使用 sqlite 数据库本地缓存数据处理

    在 uni-app 使用 sqlite 要先学习简单的 SQL 语法。SQLite传送门[https://www....

  • SQLite 学习资料

    SQLite 学习资料 一整套对SQLite的解析 牛逼了 我只能说http://www.cnblogs.com...

  • SQLite学习五、 触发器(Trigger)

    百度百科 SQLite 触发器(Trigger)是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。 ...

网友评论

      本文标题:SQLite学习(五)

      本文链接:https://www.haomeiwen.com/subject/pmmqaxtx.html