SQLite插入顺序与查询顺序有何区别?

14

查询返回的行顺序是否与SQLite数据库中插入行的顺序相同?

如果是,这种行为是否一致?

如果不是,是否可以强制执行?

我需要存储大约500行数据,并且需要不时地进行排序/排列。在插入之前,数据已经按正确顺序排列。

3个回答

16

6

即使在某种情况下顺序可能是一致的,但据我所知没有保证。

这就是为什么SQL有ORDER BY运算符:

SELECT foo,bar FROM Table FOO WHERE frobnitz LIKE 'foo%' ORDER BY baz ASC;

3
查询返回的行顺序是否与 SQLite 数据库中插入行的顺序相同?
不是的,您不能指望这一点。所有查询优化器在加速查询方面都有很大的自由度。它们可以自由地以最快的方式返回行,即使特定的数据库管理系统支持聚集索引也是如此。(聚集索引对行施加物理排序。)
在 SQL 数据库中保证返回行的顺序只有一种方法:使用“ORDER BY”子句。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接