Android开发:第四日——SQLite初接触
一、SQLite 介绍
SQLite一个非常流行的轻量级嵌入式数据库,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite并不像Oracle、MySQL数据库那样需要安装、启动服务器进程,SQLite数据库只是一个文件。
SQLite是一种嵌入到应用程序中的数据库,包含表在内的所有数据都存放在单个文件中,这些特性都非常适合于移动平台下的数据处理。
SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。
二、Android下的SQLite介绍
三、SQLite数据类型(datatype)和存储类型(storage class)
存储在SQLite数据库中的数据属于下面这些存储类别之一:
- NULL:值为NULL
- INTEGER:有符号整形,根据值的大小以1、2、3、4、6或8字节存储
- REAL:浮点类型,以8字节IEEE浮点数存储
- TEXT:文本字符串,使用数据库编码(UTF-8、UTF-16BE或者UTF-16LE)存储
- BLOB:二进制数据块,完全按照输入存放(即没有转换)
存储类别比数据类型更一般化(general)。比如INTEGER,它包含6种不同长度的整数(integer)数据类型,它们在磁盘存储上存在差异(This makes a difference on disk)。但是只要INTEGER数据从磁盘读入到内存进行处理,它们就会被转换成最普通的8字节有符号整数(integer)数据类型。
SQLite3数据库中的任何列(除了整形主键(INTEGER PRIMARY KEY)列),可以用于存储任何一个存储类别的值。SQL语句中的所有值(value),无论是嵌入在SQL语句中,或者作为参数绑定到一个预编译SQL语句,它们都有一个隐式的存储类别。在下述情况下,数据库引擎会在查询执行过程中在数值(numeric)存储类别(INTEGER和REAL)和TEXT存储类别之间转换。
------------------------------------
开篇就到这里了,自己还是一个初学者,有几年没有努力了,埋头学习去。。。待续
------------------------------------------------------------------------------------------
作者:庞辉
出处:http://www.cnblogs.com/pang123hui/
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名庞辉(包含链接).
------------------------------------------------------------------------------------------