background image

图 1. SQLite 内部结构

SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的
优点就是高效,Android 运行时环境包含了完整的 SQLite。

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以
在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入
任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关
联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则
该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入
INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。

此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY
constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN,
还有一些 ALTER TABLE 功能。

除了上述功能外,SQLite 是一个完整的 SQL 系统,拥有完整的触发器,交易等
等。

Android 集成了 SQLite 数据库