首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL中的默认排序顺序(ALTER TABLE ... ORDER BY ...;)

在MySQL中,默认排序顺序是ASC(升序)。如果要按照降序排序,则需要使用DESC关键字。

例如,如果要按照id字段升序排序,可以使用以下语句:

代码语言:txt
复制
ALTER TABLE table_name ORDER BY id ASC;

如果要按照id字段降序排序,可以使用以下语句:

代码语言:txt
复制
ALTER TABLE table_name ORDER BY id DESC;

需要注意的是,MySQL中的默认排序顺序只是在执行查询时的默认顺序,并不会影响数据表中数据的实际存储顺序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql:深究 sql 默认排序 order by

实例 ---- 群友问:请教一个问题,mysql 默认排序问题,当sql 语句 排序没有指定 主键(id)时候是按着什么规则排序呢? ?...大概意思就是数据储存表 不是有序,而是一个集合,在没有使用 order by 来排序时候,不能默认就是 根据主键排序。...You must use an order by clause if you want a specific order. 大概意思:没有默认排序顺序。...即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定顺序,则必须使用ORDER BY子句。 ?...结论 ---- 到这大家应该明白了,mysql 没有默认排序,如果需要排序一定要加上 order by 来排序,大家有没有遇到过这样问题,欢迎一起来讨论,如果有不对地方,请指正,感谢。

4.3K20

加速MySQLalter table操作(书摘备查)

https://blog.csdn.net/wzy0623/article/details/53908035 MySQLalter table性能在表很大时候会出现问题。...不是所有的alter table操作都会导致重建表。例如,可以通过两种方式创建或去掉列默认值(一种快、一种慢)。...Handler_write 1000 理论上,MySQL能跳过构建一个新表方式。列默认值实际保存在表.frm文件,因此可以不接触表而更改它。...但是可以使用alter column改变列默认值: alter table film alter column rental_duration set default 5; 这个命令更改了.frm...重命名第2个表.frm和.MYI文件,这样MySQL就可以把它们用在第1个表上。 释放读锁。 使用repair table创建表索引。这会按照排序创建所有的索引,包括唯一索引。

1.4K31
  • MySQL order by不同排序规则

    explain语句执行结果,Extra项中含有Using filesort表示需要排序MySQL会给每个线程分配一块内存用于排序,称为sort_buffer。...对sort_buffer数据按order by条件快速排序。 按照排序结果取数据返回。 rowid排序 rowid排序涉及磁盘IO,需要一次回表操作,不受内存大小限制。...当排序字段较多时,内存可放下行数很少,需要分成很多个临时文件,排序性能很差,即MySQL认为排序单行长度太大会使用rowid排序。...对sort_buffer数据按order by条件进行排序。 遍历排序结果,取数据返回。...控制用于排序行数据长度,单行长度超过该值,MySQL更换排序算法 SET max_length_for_sort_data = 16; 使用索引排序 语句执行流程: 从索引找到第一个满足where

    31140

    alter table锁表,MySQL出现Waiting for table metadata lock场景浅析及解决方案

    一个没提交事务使用了A表, 另外一个session 对A表进行alter,出现waiting for table metadata lock ---- MySQL版本为5.6.12。...这是最基本一种情形,这个和mysql 5.6online ddl并不冲突。...一般alter table操作过程(见下图),在after create步骤会获取metadata 独占锁,当进行到altering table过程时(通常是最花时间步骤),对该表读写都可以正常进行...,这就是online ddl表现,并不会像之前在整个alter table过程阻塞写入。...总之,alter table语句是很危险,在操作之前最好确认对要操作表没有任何进行操作、没有未提交事务、也没有显式事务报错语句。

    3.2K80

    MySQLgroup by 与 order by 一起使用排序问题

    假设有一个表:reward(奖励表),表结构如下: CREATE TABLE test.reward ( id int(11) NOT NULL AUTO_INCREMENT, uid int(...) ) ENGINE = INNODB AUTO_INCREMENT = 1 CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = '奖励表'; 表数据如下...: 现在需要查询每个人领取最高奖励并且从大到小排序: 如果直接查询: SELECT id, uid, money, datatime FROM reward GROUP BY uid ORDER BY...money DESC; 得到如下结果: 没有得到我们需要结果,这是因为group by 和 order by 一起使用时,会先使用group by 分组,并取出分组后第一条数据,所以后面的order...by 排序时根据取出来第一条数据来排序,但是第一条数据不一定是分组里面的最大数据。

    1.7K30

    软件测试|MySQL ORDER BY详解:排序查询利器

    简介在数据库,我们经常需要对查询结果进行排序,以便更好地展示数据或满足特定业务需求。MySQL提供了ORDER BY子句,使我们能够轻松地对查询结果进行排序。...本文将详细介绍MySQL ORDER BY用法和示例,帮助大家更好地理解和应用这一功能。基本语法在MySQLORDER BY子句用于对查询结果按照指定列进行排序。...ASC|DESC: 表示排序顺序。ASC表示升序(默认),DESC表示降序。...当排序字段存在空值时,ORDER BY 会将该空值作为最小值来对待。ORDER BY 指定多个字段进行排序时,MySQL 会按照字段顺序从左到右依次进行排序。...结论ORDER BY子句是MySQL强大功能,允许我们对查询结果进行排序,以满足不同业务需求。通过示例,我们希望大家对ORDER BY语法和用法有了更好理解。

    31720

    MySQL 排序艺术:你真的懂 Order By 吗?

    换句话说,业务中使用 SELECT 语句时候除了不可避免搭配 WHERE 以外,还会配合 ORDER BY进行使用。 今天来好好聊聊 MySQL ORDER BY 排序。...没错,这正是 MySQL 针对带有 LIMIT ORDER BY 语句优化:使用优先队列进行排序。...现在我们知道有全字段排序和 rowId 排序,那么 MySQL 是如何在这两种排序方案做选择呢?...如果当前 MySQL 使用是内存临时表的话,将会直接使用 rowId 排序,因为这时候所谓“回表”只是在内存表读数据,操作不涉及硬盘随机 IO 读。...所以 MySQL 提供了 tmp_table_size 参数限制了内存临时表大小,默认值是 16M。 如果临时表大小超过了tmp_table_size,那么内存临时表就会转成磁盘临时表。

    2.7K61

    数据库常用语句

    19、删除数据 20、查询数据 21、多表查询 1、下列语句中各种括号说明 尖括号代表参数,不用写 小括号( )是语法要求,需要写 括号[ ]是可选语法参数,不用写 2、启动/关闭mysql...(主键列名) 创建表时在末尾设定外键约束,外键名可省略,系统会给默认外键名 alter table add [constraint 外键名] foreign key(外键列名)...from where group by having order by limit 查询sql关键字执行顺序 from where group by having select order by...limit 编写技巧 根据需求挑选关键字,按照书写顺序依次排列关键字 按照关键字执行顺序填空 where 表达式:可选,限定查询满足条件。...order by 表达式:可选,指明排序方式,升序asc和降序desc limit 起始编号, 查询条数:可选,设置每次显示查询出来数据条数。

    73830

    SQL优化

    drop index idx_bta on book; 根据SQL实际解析顺序,调整索引顺序alter table book add index idx_tab (typeid,authorid...) ; alter table course2 add index index_course2_cname(cname); Using join buffer:extra一个选项,作用:Mysql引擎使用了...where tid in (1,3,5) ; (2)order by 优化 using filesort 有两种算法:双路排序、单路排序 (根据IO次数) MySQL4.1之前 默认使用 双路排序...;双路:扫描2次磁盘(1:从磁盘读取排序字段 ,对排序字段进行排序(在buffer中进行排序) 2:扫描其他字段 ) --IO较消耗性能 MySQL4.1之后 默认使用 单路排序 : 只读取一次...值太低,则mysql会自动从 单路->双路 (太低:需要排序总大小超过了max_length_for_sort_data定义字节数) 提高order by查询策略: a.选择使用单路、双路

    1.8K10

    小白专属mysql入门

    操作表与字段 MySQLALTER TABLE 语句来修改数据表结构,包括重命名数据表名称、重命名字段名称、修改字段类型、修改字段默认值、增加和删除字段等。...3,修改字段默认值 语法格式 ALTER TABLE 数据表名 CHANGE 字段名 字段定义;eg:ALTER TABLE stu CHANGE major major varchar(50) not...5,修改字段顺序 ALTER TABLE student CHANGE name after sid; 6,删除表结构 语法结构 DROP TABLE [IF EXISTS] 数据表[,数据表,......此时默认为0. 一般我们总是先排序再从指定位置记录。 SELECT 字段名[,字段名...] FROM 数据表名 WHERE 条件表达式 ORDER BY 字段名[,字段名...]...如果通过WHERE语句查询出记录有多条,那么也可以使用ORDER语句进行排序。按照排序结果依次更新,还可以使用LIMIT子语句限制更新条数。

    1.1K40

    mysqlorder by是怎样工作

    先举一个例子: 创建一张表: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name`...: select city,name,age from t where city='杭州' order by name limit 1000 ; 排序过程: 初始化一个sort buffer 我们对...city进行了索引创建所以通过索引将city为杭州筛选出来;(减少全表扫描) 将筛选出来 city age name 字段放在内存 sortbuffer (sort buffer 为排序开辟一块新内存...(就算是limit等于1000 在这一步也会查出比1000多数据 在这块分页是不起作用 ) 一直重复第三步 将符合条件在所有数据存入 sort buffer 通过name 进行快速排序。...按照排序结果取出前1000条数据。 下图为排序流程图: (来自极客时间) ? 还有一种就是通过rowId 排序(这种情况是当一行数据过大时候) 直接上 流程图 : ?

    2.3K30

    MySQL—SQL语言

    [约束]; 删除字段 ALTER TABLE 表名 DROP 字段名; 修改表名 ALTER TABLE 表名 RENAME TO 新表名; 删除表 删除表 DROP TABLE [IF EXISTS]...,(值1,值2,...); 注意: 插入数据时,指定字段顺序需要与值顺序是一一对应; 字符串和日期型数据应该包含在引号; 插入数据大小,应该在字段规定范围内。...ORDER BY 字段1 排序方式1,字段2 排序方式2; 排序方式: ASC 升序(默认值) DESC 降序 注意:如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。...分页查询是数据库“方言”,不同数据库有不同实现,MySQL是LIMIT。 如果查询是第一页数据,起始索引可以省略,直接简写为limit 10。...3.2 执行顺序 FROM → WHERE → GROUP BY → SELECT → ORDER BY → LIMIT 4.

    2.2K40

    MySql基础知识总结(SQL优化篇)

    备注:因为mysql优化器缘故,与索引顺序不一致,也会触发索引,但实际项目中尽量顺序一致。...on student 索引改名 ALTER TABLE student RENAME INDEX student_union_index2 TO student_union_index 更改索引顺序之后...by 优化 using filesort有两种算法:双路排序、双路排序(根据IO次数) MySQL4.1之前,默认使用双路排序;双路:扫描两次磁盘(①从磁盘读取排序字段,对排序字段进行排序;②获取其它字段...MySQL4.1之后,默认使用单路排序;单路:只读取一次(全部字段),在buffer中进行排序。但单路排序会有一定隐患(不一定真的是只有一次IO,有可能多次IO)。...using index); 符合索引不要跨列使用,避免using filesort; 保证全部排序字段,排序一致性(都是升序或降序); 七、sql顺序 -> 慢日志查询 慢查询日志就是MySQL提供一种日志记录

    43220

    mysqlsql语句优化5种方式_MySQL数据库优化

    备注:因为mysql优化器缘故,与索引顺序不一致,也会触发索引,但实际项目中尽量顺序一致。...on student 索引改名 ALTER TABLE student RENAME INDEX student_union_index2 TO student_union_index 更改索引顺序之后...by 优化 using filesort有两种算法:双路排序、双路排序(根据IO次数) MySQL4.1之前,默认使用双路排序;双路:扫描两次磁盘(①从磁盘读取排序字段,对排序字段进行排序;②获取其它字段...MySQL4.1之后,默认使用单路排序;单路:只读取一次(全部字段),在buffer中进行排序。但单路排序会有一定隐患(不一定真的是只有一次IO,有可能多次IO)。...using index); 符合索引不要跨列使用,避免using filesort; 保证全部排序字段,排序一致性(都是升序或降序); 七、sql顺序 -> 慢日志查询 慢查询日志就是MySQL提供一种日志记录

    1.6K40
    领券