SQLite3使用小贴士

一、SQLite3 中limit、offset使用说明
假设表列值为 0,1...9(假设由select * from <table_name>获得);
LIMIT 子句限定行数的最大值。负的 LIMIT 表示无上限。后跟可选的 OFFSET 说明跳过结果集中的前多少行。在一个复合查询中, LIMIT子句只允许出现在最终 SELECT 语句中。限定对于所有的查询均适用,而不仅仅是添加了 LIMIT 子句的那一行。注意 OFFSET 关键字用于LIMIT 子句中,则限制值是第一个数字,而偏移量(offset)是第二个数字。若用逗号替代 OFFSET 关键字,则偏移量是第一个数字而限制值是第二个数字。


1. select  <列名/ *>  from  <table_name>  limit 6【limit :限制值】
结果: 0,1...5; (前 6 条数据)


2. select <列名/ *> from <table_name> limit 6 offset 2 【limit :限制值 ;offset :偏移量】
结果: 2,3...7; (从 0 开始偏移 2 个后的 6 条数据)


3. select <列名/ *> from <table_name> limit 2, 6 【偏移量,限制值】
结果:同 2


4. delete from  <table_name>  where rowid in(select rowid from  <table_name> limit 1 offset 4)
结果:删除第五行

limit 1:删除 1 行
offset 4:偏移 4 行


二、Sqlite3中去掉多余的重复记录
5. select distinct  <列名/ *>  from  <table_name>
说明:加上关键字distinct会去掉多余的重复记录


三、排序

1. 升序:
select  <列名/ *> from <table_name> order by <列名/ *>

2. 降序:
select  <列名/ *> from <table_name> order by <列名/*>  DESC


四、在使用API:sqlite3_get_table获取数据时,记得对应用sqlite3_free_table函数释放占用的内存,因为sqlite3_get_table包含malloc函数申请内存的处理,如若不用sqlite3_free_table会内存泄露。同样对pzErrmsg也要用sqlite3_free释放内存


int sqlite3_get_table(
  sqlite3 *db,          /* An open database */
  const char *zSql,     /* SQL to be evaluated */
  char ***pazResult,    /* Results of the query */
  int *pnRow,           /* Number of result rows written here */
  int *pnColumn,        /* Number of result columns written here */
  char **pzErrmsg       /* Error msg written here */
);
void sqlite3_free_table(char **result);


http://blog.csdn.net/lugandong/article/details/48501375 


注:更多直接浏览Sqlite3官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值