http://blog.csdn.net/beifengdelei/article/details/7166056

SQLite自增ID自段
使用方法为 INTEGER PRIMARY KEY AUTOINCREMENT
如:

CREATE TABLE 21andy ( id INTEGER PRIMARY KEY AUTOINCREMENT, 21andy VARCHAR(100) NOT NULL, date DATE );

注意是AUTOINCREMENT, 和MySQL的写法不一样

 

SQLite清空表
SQLite没有TRUNCATE清空表命令,所以只能这样

DELETE FROM 21andy;

SQLite 删除记录后, 自增ID置0

只能这样

DELETE FROM sqlite_sequence;

另外, 这个sqlite_sequence可以CRUD

 

SQLite 删除记录后, 不会释放空间
必须像这样

VACUUM

SQLite 分页查询
有两种写法:

Select * From Account Limit 9 Offset 10;
SELECT * FROM Account LIMIT 10, 9

他们两个的效果都是一样的,其中第一种写法比较清晰明了,即跳过10行,读取其后的9行数据.

SQLite批量插入数据
很不幸的事情是貌似SQLite只能一条一条的执行插入,但是这是非常非常慢的行为,执行一条就是执行一次写入磁盘的操作,这实在是太可怕了.在SQLite里面执行批量插入,只能将插入操作放入到事务当中去.示例如下:

BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t2 VALUES(1,59672,'fifty nine thousand six hundred seventy two');
INSERT INTO t2 VALUES(24999,89569,'eighty nine thousand five hundred sixty nine');
INSERT INTO t2 VALUES(25000,94666,'ninety four thousand six hundred sixty six');
COMMIT; 

在SQLite当中一系列要进行多次写入操作的时候,建议放入到事务当中去,这个优化的性能提升是可以很明显感觉到的.用与不用的差别是非常大的.

SQLite数据不存在INSERT,存在UPDATE
SQLite的SQL语法类MySQL,在SQLite里面有一个关键字REPLACE,可以使用它达到目的:

REPLACE INTO [table] (row1, row2) VALUES (2, 3);

如果该表有一个主键,那么当主键值相等的时候,该行数据不存在执行插入,存在则执行更新操作.但是如果没有主键,那么它就执行的永远都是插入操作了.

SQLite 使用技巧的更多相关文章

  1. Android中SQLite应用详解

    上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite. 现在的主流移动设备像Android.i ...

  2. Android中SQLite应用详解(转)

    上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite. 现在的主流移动设备像Android.i ...

  3. Android中SQLite使用

    现在的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上 ...

  4. Android SQLite系列

    转:http://blog.csdn.net/liuhe688/article/details/6715983 Android中如何使用SQLite. 现在的主流移动设备像Android.iPhone ...

  5. Android中SQLite介绍

    现在的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上 ...

  6. Android中SQLite应用具体解释

    如今的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,或许就要使用到SQLite来存储我们大量的数据,所以我们就须要掌握移动设备上 ...

  7. Android(Xamarin)之旅(五)

    2016年1月23日,北京迎来了很痛苦的一天,冻死宝宝了,一天都没有出我自己的小黑屋,在这屋子里自娱自乐.不知道你们呢 对于android的四大基本组件(Activity.Service.Broadc ...

  8. Android数据存储五种方式总结

    本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据     2 文件存储数据       3 SQLite数据库存储数据 4 使用Cont ...

  9. Android中常用的五种数据存储方式

    第一种: 使用SharedPreferences存储数据 适用范围: 保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小 ...

随机推荐

  1. Bzoj1313 [HAOI2008]下落的圆盘

    有 n 个圆盘从天而降,后面落下的可以盖住前面的.最后按掉下的顺序,在平面上依次测得每个圆盘的圆心和半径,问下落完成后从上往下看,整个图形的周长是多少,即你可以看到的圆盘的轮廓的圆盘的轮廓总长.例如下 ...

  2. [ZOJ2341]Reactor Cooling解题报告|带上下界的网络流|无源汇的可行流

    Reactor Cooling The terrorist group leaded by a well known international terrorist Ben Bladen is bul ...

  3. HDU2441 ACM(Array Complicated Manipulation)

    ACM(Array Complicated Manipulation) Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32 ...

  4. Buildroot自动化交叉编译工具:其一【转】

    转自:http://blog.csdn.net/youyudehexie/article/details/7583657 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] Bui ...

  5. python multiprocessing多进程模块

    原文:https://blog.csdn.net/CityzenOldwang/article/details/78584175 多进程 Multiprocessing 模块 multiprocess ...

  6. UTF-8编码中BOM的检测与删除[linux下命令]

    Posted on 2011-05-14 所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此 ...

  7. Jquery 学习之路(四)高大上的图片轮换

    网站首页没有一点动画怎么可以,我以前用过Flash As3做过图片切换,效果非常不错,可是麻烦,改变起来麻烦.一直都想自己做个图片切换效果,总认为比较麻烦,今天自己实践了一下,其实还比较简单.不过有个 ...

  8. MySQL存储IP地址

    mysql没有提供IP类型,常见的存储多为使用varchar类型.其实使用int型更好,主要原因是便于计算IP段. 具体应用时应设置字段类型为unsigned int.否则无法存储128.x.x.x及 ...

  9. HDU 2647 Reward【反向拓扑排序】

    Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  10. hihocoder1062 最近公共祖先·一

    #1062 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在 ...