加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite3使用小贴士

发布时间:2020-12-12 19:50:00 所属栏目:百科 来源:网络整理
导读:一、SQLite3 中limit、offset使用说明 假设表列值为 0,1...9(假设由 select * from table_name 获得); LIMIT 子句限定行数的最大值。负的 LIMIT 表示无上限。后跟可选的 OFFSET 说明跳过结果集中的前多少行。在一个复合查询中, LIMIT子句只允许出现在最

一、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 <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 <table_name>
说明:加上关键字distinct会去掉多余的重复记录


三、排序

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

2.降序:
select<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);


注:更多直接浏览Sqlite3官网

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读