SQLite数据库
@嵌入式关系型数据库SQLite
特点
1.支持五种数据类型 null,INTEGER,REAL(浮点数),TEXT(字符串文本)和BLOB(二进制文本)数据类型,虽然
它只有五种,但实际上sqlite3也接手varcher(n),char(n),decimal(p,s)等数据类型,只不过在运算活保存时会转成
相应的五种数据类型。
2.最大的特点
可以保存任何类型的数据到任何字段中,无论这列声明的数据是什么类型。
例如:
可以在Integer类型的字段中存放字符串,或者在Boolean 中存放浮点数,或者在字符型字段中存放日期型值但有一种情况例外
例外:
定义为Integer primary key 的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误,另外sqllite
在解析create table 语句时会忽略create table 语句中跟在字段后面的数据型信息
例如:
create table person(personid integer primary key autoicrement,name varchar(20))
它在保存表机构的时候会忽略掉varchar(20),这时我们保存多少个字符都可以
3sqlite可以解析大部分的标
相关文档:
SQLite支持的编译指令(pragma)
PRAGMA命令
是用于修改SQlite库或查询SQLite库内部数据(non-table)的特殊命令。PRAGMA 命令使用与其它SQLite命令(e.g. SELECT, INSERT)相同的接口,但在如下重要方面与其它命令不同:
在未来的SQLite版本中部分pragma可能被删除或添加,小心使用。
当使用未知的pragma语句时不产生报错 ......
//插入及更新操作
int nRet = 0;
sqlite3 * db = NULL;
CString strFilePath; //数据库存储路径
//路径赋值(省略)
//连接数据库
nRet = sqlite3_open16(strFilePath, &db); //有几个打开函数可供调用,使用WCHAR类型路径用这个
if(nRet != SQLIT ......
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0条记录开始,往后 ......
前两篇日志我已经总结了本地数据存储的前两种:文件和配置项。还剩下最后一种数据库存储——SQLite。
一、SQLite简介
在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种 ......
Android SQLite Database本打算封装SQLite的,但是,发现实际上Android已经封装了一层,尤其是数据的增、删、查、改上,更是如此,所以,我后来只封装了一个连接层,负责打开、建立数据库,并返回一个SQLite的实例用来完成增、删、插、改等操作。
//----------- DBHelper -------------
package utility.db;
import ja ......