数据表中的记录默认是否有序?如果有又是按照什么排序的呢?

这是我一个朋友问我的问题,我觉得还有点意思
假设有表
tb_user(id int(6) autoincrement not null,name varchar(20) not null)
插入数据顺序如下:
1    a,
2    b,
3    c
tb_pwd(id int(6) not null, pwd varchar(20) not null)
有数据:
3    9,
2    8,
1    7
分别查询两个表,结果跟插入的顺序一致
SELECT a.*,b.pwd FROM tb_user a,tb_pwd b where a.id=b.id
结果是:
1    a    7,
2    b    8,
3    c    9,
SELECT a.*,b.pwd FROM tb_user a,tb_pwd b where a.id=b.id
结果是:
3    c    9,
2    b    8,
1    a    7
数据库MySQL,展现工具MySQL-font,
初步估计:
1、在MySQL中数据是按照表中记录的插入次序进行排序的
2、如果是联合查询则按第一个表排序。
验证一下,我把tb_user中的2  b记录删除,再在后面添加同样一条记录,只查询tb_user表,排序结果仍然不变,说明前面推测不对。
再次估计:
1、在MySQL中数据是按照表中的主键字段次序进行排序的
再次验证,我按以下顺序在表tb_user中添加了记录6   f,5   e,之后仅查询表表tb_user,发现结果是:
1    a,
2    b,
3    c,
6    f,
5    e
第三次估计,
1、在MySQL中数据是按照表中记录的插入次序进行排序的
2、如果是联合查询则按第一个表排序。
3、如果删除了某条记录,再将该记录添加到原来的表里,数据库用某种机制实现恢复原来记录包括查询顺序。

写本文的目的仅仅在于研究一下MySQL数据库的记录排序问题,并强烈反对利用数据库本身的排序功能实现功能。
如果要保证出来的结果按照一定的次序,则在设计数据库的时候就应该设计好一个字段作为排序依据

你可能感兴趣的:(C++,c,mysql,C#,F#)