`

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

阅读更多
这是我一个朋友问我的问题,我觉得还有点意思
假设有表
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数据库的记录排序问题,并强烈反对利用数据库本身的排序功能实现功能。
如果要保证出来的结果按照一定的次序,则在设计数据库的时候就应该设计好一个字段作为排序依据
分享到:
评论

相关推荐

    数据结构之有序列表 - SequenceList

    有序列表,又称顺序表,是数据结构的一种基本形式,通常是指元素按线性顺序排列的数组或链表。在这个名为“SequenceList”的源代码实现中,我们可以深入探讨有序列表的各种操作和算法。 首先,有序列表的初始化是一...

    易语言排序算法演示

    3. **插入排序**:插入排序是一种简单直观的排序算法,它的工作原理是通过构造一个有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用...

    Java ArrayList实现的快排,归并排序,堆排序

    在JDK 1.7版本中,ArrayList的实现已经优化,提供了`Collections.sort()`方法,它默认使用TimSort算法,这是一种结合了归并排序和插入排序的混合排序算法,既保证了稳定性,又在大部分情况下有良好的性能表现。...

    JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    希尔排序是基于插入排序的算法,通过将原始数据分割成若干个较小的子序列,分别进行插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。希尔排序可以减少数据移动次数,并且由于“基本...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    *4.8 有默认参数的函数 4.9 函数的嵌套调用 4.10 函数的递归调用 4.11 局部变量和全局变量 4.11.1 局部变量 4.11.2 全局变量 4.12 变量的存储类别 4.12.1 动态存储方式与静态存储方式 4.12.2 自动变量 4.12.3 用...

    Collection E、Map K,V接口底层实现类数据结构的区别和联系.pdf

    HashSet的构造器允许指定初始容量和负载因子,负载因子决定了当哈希表中的元素数量超过其容量与负载因子的乘积时,哈希表的容量是否应该扩展。 2.2 LinkedHashSet: LinkedHashSet是HashSet的一个变体,它在内部...

    数据结构(C++)有关练习题

    e. 如有可能,请建立一个存储商品名称和数量的文本文件,并为二叉搜索树建立一个成员函数SetupInventory(),用于从该文本文件中读取库存商品的数据, 实验报告要求: 1、 按要求记录下二叉搜索树的完整实验...

    2021-2022计算机二级等级考试试题及答案No.13254.docx

    - **解析**: 自由表是指那些未附加到任何数据库中的表,它们可以被添加到数据库中,同样地,数据库中的表也可以被移出成为自由表。 ### 19. 字符串函数RIGHT - **题目**: 函数RIGHT("abcdef",2)的结果是什么? - **...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    *4.8 有默认参数的函数 4.9 函数的嵌套调用 4.10 函数的递归调用 4.11 局部变量和全局变量 4.11.1 局部变量 4.11.2 全局变量 4.12 变量的存储类别 4.12.1 动态存储方式与静态存储方式 4.12.2 自动变量 4.12.3 用...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【Mybatis】MyBatis中使用#和$书写占位符有什么区别? 100 【Mybatis】Mybatis是如何进行分页的?分页插件的原理是什么? 100 【数据库】什么是事务?事务的四个特性?事务的隔离级别?什么是脏读,不可重复读,幻读...

    2021-2022计算机二级等级考试试题及答案No.10961.docx

    在关系数据库中,数据表之间通常是**既相对独立又相互联系**的。这意味着虽然每个表都可以独立存在,但通过外键等机制,表之间也可以形成关联。 ### 15. 视图的更新 基于student表创建的视图中,**可以进行数据更新...

    LinkedHashmap的使用

    总的来说,LinkedHashMap结合了HashMap的高效性和有序性的特点,适用于那些对元素顺序有特定需求但又希望保持高效性能的场景。在理解和使用时,需要注意其内部结构和排序方式,以便更好地利用其特性。

    深入浅出 InnoDB Index1

    这种组织方式使得数据和其对应的主键在同一结构中,每个B+Tree的叶子节点都包含了完整的数据记录。值得注意的是,B+Tree的每个节点在MySQL中被称作页(Page),默认大小为16KB。 在InnoDB中,如果表没有明确指定...

    lower-bound 的简要介绍.docx

    3. **适用场景**:适用于需要高效查询或定位有序数据的情况,如查找数据库记录、实现二分查找等。 #### 三、函数原型 `lower_bound`有两种主要的实现形式: 1. **默认版本**: ```cpp template , class T> ...

    2021-2022计算机二级等级考试试题及答案No.12471.docx

    **内存中存放的既有程序代码又有数据**:这是对内存的准确描述。 - D. **外存中存放的是当前正在执行的程序代码和所需的数据**:外存主要用于长期存储数据,而不是运行时的程序代码。 **正确答案**:C ### 19. ...

    Redis实战中文

    - **数据类型**:Redis提供了五种主要的数据类型,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(ZSet),每种类型都有其独特的应用场景。 - **持久化**:Redis支持两种持久化方式:RDB...

    SPSS统计分析—变量数据文件系统参数精PPT学习教案.pptx

    掌握这些基本概念和操作,将有助于我们更高效地使用SPSS进行数据分析,从数据中提取有价值的信息。无论是进行描述性统计、推断性统计还是预测建模,对变量的理解和合理设置都是必不可少的步骤。在实际工作中,结合...

    AbstractSortedSetMultimap.rar_interface

    同时,SortedSetMultimap又引入了排序的特性,意味着与每个键关联的值集合(集合中的元素都是唯一的)是有序的。这种有序性使得在处理大量数据时,我们可以通过排序来快速定位和操作特定的值。 ...

Global site tag (gtag.js) - Google Analytics