sqlite是严格的数据顺序读取吗

phoenix_tk 2018-01-17 01:34:30
sqlite版本是3.7及以上
insert into test(id) values (1);
insert into test(id) values (2);
insert into test(id) values (3);
insert into test(id) values (4);
insert into test(id) values (5);

select * from test;//单表,不做order by
id
----
1
2
3
4
5
单表读取:sqlite是不是绝对的按照插入数据的顺序来进行顺序读取,有没有可能读取出来的数据不是1,2,3,4,5 而是2,1,3,5,4之类乱序的?
...全文
1730 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengangcsdn 2018-04-11
  • 打赏
  • 举报
回复
完全有可能啊。因为sqlite也有索引,如果要有指定顺序要求,一定order by 。。
## SqliteHelper for Python ## 简介 SqliteHelper是一个基于Python和Sqlite3的助手类库,根据实际使用大大简化数据库增删改查的操作,助手类库采用连贯操作,使开发更加灵活速度进一步得到提高。 ## 开始使用 只需将 `SqliteHelper.py` 文件复制到项目目录下,在需要操作数据库的代码中添加以下引用: ``` import SqliteHelper ``` ## 连接数据库 连接数据库只需要提供数据库路径即可,使用下面的代码,连接到数据库文件并返回一个数据库对象。 ``` testDb = SqliteHelper.Connect(r'数据库路径') ``` > 如果数据库路径存在则直接连接数据库,若数据库不存在则在该路径下自动创建一个数据库文件并连接。 有些项目不需要保存数据库文件,则可以使用下面的代码直接将数据库创建到内存中。 ``` testDb = SqliteHelper.Connect() ``` > 需要注意,在内存中创建的数据具有更快的读写速度,但释放掉内存的同时数据库将永久丢失。 ## 连贯操作 连贯操作也有称作链式操作的,本助手类库全部方法均基于连贯操作来实现的,所有连贯操作的起点均来自 `数据库对象` ,即连接数据库示例代码中的 `testDb` 变量。 连贯操作的使用十分简单,假如我们要查询用户数据表中id小于100的前5个用户名,按照id值降序排列,代码如下: ``` ret = testDb.table('user').where('id < 100').order('id desc').field('username').find(5) ``` 以上示例中`table`为数据表指定的方法必须放在开头;`where`、`order`、`field`方法就是连贯操作方法,连贯操作方法的顺序可以随意,不按照示例中的顺序摆放也是可以的;而`find`是实际操作的方法,必须放在最后。 系统中支持的连贯操作方法如下表: 连贯操作方法 | 作用 | 支持的参数类型 :-: | :-: | :-: where | 用于查询或者更新条件的定义 | str、dict data | 用于新增数据之前的数据对象赋值 | list、tuple、dict field | 用于定义查询要输出的字段 | str、list、tuple order | 用于对结果排序 | str、list、dict 具体连贯操作方法的使用在后续章节中将详细介绍说明。 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧