mysql和oracle默认排序的方法 - 不指定order by
目录
- 先说结论
- 1. innoDB引擎
- 1.1 创建表,id类型为字符串
- 1.2 插入数据,并查询
- 1.3 创建表,id字段类型为int
- 1.4 插入数据,并查询
- 1.5 结论
- 2. myISAM引擎
- 2.1 创建表, id类型为字符串
- 2.2 插入数据,并查询
- 2.3 创建表,id字段类型为int
- 2.4 插入数据,并查询
- 2.5 结论
先说结论
1. oracle: oracle 默认没有排序规则
2. mysql
2.1 innoDB引擎: 默认查询按照id正序排序
2.2 myISAM引擎: 默认按照插入时间正序排序
mysql: 已明确查询的默认排序方式为id或者插入顺序的一种
1. innoDB引擎
1.1 创建表,id类型为字符串
1.2 插入数据,并查询
如下图:
观察create_date可以看出,插入顺序为"1","2","12"。 但查询结果是"1", "12", "2" , 因此一定不是按照插入时间排序的。 强调:当前表的id类型为字符串
1.3 创建表,id字段类型为int
1.4 插入数据,并查询
如下图:
观察create_date可以看出,插入顺序为1 , 12 , 2。 但查询结果是1 , 2 , 12, 因此一定不是按照插入时间排序的。 强调:当前表的id类型为int
1.5 结论
由以上两个结果可以观察到, innoDB引擎,默认使用的id排序
2. myISAM引擎
2.1 创建表, id类型为字符串
2.2 插入数据,并查询
如下图:
观察create_date可以看出,插入顺序为1 , 2 , 12, 3。 查询结果也是1 , 2 , 12, 3, 因此一定不是按照id排序的。 强调:当前表的id类型为字符串
2.3 创建表,id字段类型为int
2.4 插入数据,并查询
结果如图:
观察create_date可以看出,插入顺序为1 , 12 , 2, 11。 查询结果也是1 , 12 , 2,11, 因此一定不是按照id排序的。 强调:当前表的id类型为int
2.5 结论
由以上两个结果可以观察到, myISAM引擎,默认使用的插入顺序排序
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
9种 MySQL数据库优化的技巧
目录 1.选择最合适的字段属性 2.尽量把字段设置为NOT NULL 3.使用连接(JOIN)来代替子查询(Sub-Queries) 4.使用联合(UNION)来代替手动创建的临时表 5.事务 6.使用外键 7.锁定表 8.使用索引 9.优化de的查询语句 9.1 不使用子查询 9.2 避免函数索引 9.3 用IN来替换OR 9.4 LIKE双百分号无法使用到索引 9.5 读取适当的记录LIMIT M,N 9.6 避免数据类型不一致 9.7 分组统计可以禁止排序 9.8 避免随机取记录 9.9
-
MySQL asc、desc数据排序的实现
数据排序 asc.desc 1.单一字段排序order by 字段名称 作用: 通过哪个或哪些字段进行排序 含义: 排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序(asc),如果存在 where 子句,那么 order by 必须放到where 语句后面. (1).按照薪水由小到大排序(系统默认由小到大) 例如: select ename,sal from emp order by sal; (2).取得j
-
MySQL中对查询结果排序和限定结果的返回数量的用法教程
MySQL Order By 查询结果排序 ORDER BY SQL 语法中 ORDER BY 关键字用于对查询结果进行排序. 排序分为升序(ASC)和降序(DESC)两种,当不使用 ORDER BY 指定排序方式时,默认为升序. 语法: SELECT column,- FROM tb_name ORDER BY column1,column2,- DESC(ASC) ORDER BY 后面必须列出排序的字段名,可以是多个字段. 对 user 表 uid 进行降序查询: SELECT uid,u
-
mysql和oracle默认排序的方法 - 不指定order by
目录 先说结论 1. innoDB引擎 1.1 创建表,id类型为字符串 1.2 插入数据,并查询 1.3 创建表,id字段类型为int 1.4 插入数据,并查询 1.5 结论 2. myISAM引擎 2.1 创建表, id类型为字符串 2.2 插入数据,并查询 2.3 创建表,id字段类型为int 2.4 插入数据,并查询 2.5 结论 先说结论 1. oracle: oracle 默认没有排序规则 2. mysql 2.1 innoDB引擎: 默认查询按照id正序排序 2.2 myISAM引
-
mysql、oracle默认事务隔离级别的说明
1.事务的特性(ACID) (1)原子性(Atomicity).事务中所涉及的程序对数据库的修改操作要么全部成功,要么全部失败. (2)一致性(Consistency).事务执行前和执行后来源和去向保持平衡. (3)隔离性(Isolation).并发时每个事务是隔离的,相互不影响. (4)持久性(Durubility).一旦事务成功提交,应该保证数据的完整存在. 2.事务隔离级别 (1)read uncommitted 未提交读 所有事务都可以看到没有提交事务的数据. (2)read commi
-
oracle指定排序的方法详解
Oracle9i之前,中文是按照二进制编码进行排序的.在oracle9i中新增了按照拼音.部首.笔画排序功能. 1.设置NLS_SORT参数值 SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序).部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序 2.Session级别的设置,修改ORACLE字段的默认排序方式: 按拼音:alter session set nls_s
-
php二维数组排序与默认自然排序的方法介绍
php二维数组排序函数,默认自然排序,即sort排序.这里可以指定按二维数组中的某个值进行多种方法排序,具体看下面的程序注释. 复制代码 代码如下: /** * @function 二维数组自然排序 * @author www.phpernote.com * @param array $array 需要排序的数组(二维) * @param string key 需要根据哪个键排序 * @param string order 排序方式(SORT_ASC,SORT_DESC) * @param st
-
解析MySQL设置当前时间为默认值的方法
MySQL设置当前时间为默认值的问题我们经常会遇到,下面就为您介绍MySQL设置当前时间为默认值的实现全步骤,希望对您能有所启迪.数据库:test_db1创建表:test_ta1两个字段:id (自增 且为主键),createtime 创建日期(默认值为当前时间) 方法一.是用alert table语句: 复制代码 代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nulll
-
xampp修改mysql默认密码的方法
在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql默认密码了. 大概过程 在mysql里设密码打开IE输入网址localhostphpadmin之后,点用户看到有root用户,往下拉,找到修改密码的地方,输入密码,进行执行操作,最后再去到在你的xampp安装目录下找到phpadmin文件夹,打开找到config.inc.php文件之后,打开找关于m
-
Linux下安装Python3和django并配置mysql作为django默认服务器方法
我的操作系统为centos6.5 1 首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包. yum install mysql mysql-devel #为了测试方便,我们需要安装sqlite-devel包 yum install sqlite-devel 2 接下来需要安装Python了,因为Python3已经成为主流,所以接下来我们要安装Python3,到官网去下载Python3
-
基于mysql 默认排序规则的坑
mysql默认varchar类型是对大小写不敏感(不区分),如果想要mysql区分大小写需要设置排序规则: utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写. utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感. utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感. 用utf8_genera_ci没有区分大小写,导致这个字段的内容区分大小写时出问题,比如作为区分大小写的code或者
-
解决JPA save()方法null值覆盖掉mysql预设的默认值问题
目录 JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 解决办法 data jpa动态插入(null为sql默认值,utime自动更新 ) JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 save()方法在没有参数传进去的时候默认是null值,而mysql表中该字段设置为可以为null值,这时虽然我们设置了默认值,可null值还是会把默认值覆盖掉. 解决办法 将该字段设置为不允许null值即可,这样null值就会被替换为默认值. data jpa
-
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: unixODBC FreeTDS pyodbc cx_Oracle 欢迎转载,请注明作者.出处. 作者:张正 QQ:176036317 如有疑问,欢迎联系. 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQ
随机推荐
- MySQL中or语句用法示例
- JavaScript结合PHP实现网页制作中双下拉菜单的动态实现
- excel vba 高亮显示当前行代码
- 动态的绑定事件addEventListener方法的使用
- Flex 文本框的输入下拉提示
- php计算数组不为空元素个数的方法
- Python编程实现双击更新所有已安装python模块的方法
- MFC程序对文件的处理方法
- Docker CentOS7的系统上安装部署以及基础教程
- SQL where条件和jion on条件的详解及区别
- sql 语句中的 NULL值
- 详解SSH框架和Redis的整合
- windows下mysql忘记root密码的解决方法
- jQuery实现点击行选中或取消CheckBox的方法
- 两级联动select刷新后其值保持不变的实现方法
- C#实现矩阵加法、取负、数乘、乘法的方法
- Yii框架引用插件和ckeditor中body与P标签去除的方法
- PHP表单数据写入MySQL数据库的代码
- Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL
- Angular 封装并发布组件的方法示例