【mysql学习】4.排序检索数据

导读:本篇文章讲解 【mysql学习】4.排序检索数据,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

        我们在这篇文章中将学习如何对检索出来的数据进行排序。 目录如下


目录

准备工作

排序检索数据

按单列排序

按多列进行排序

按列位置排序 

指定排序方向 

总结


准备工作

        首先进入mysql

【mysql学习】4.排序检索数据

         选择自己的数据库进行练习

【mysql学习】4.排序检索数据

        输入show tables;查看这个库里面的所有表,我们这次要创建的是student表,如果有了student表输入drop table student;可以将student表删除;

【mysql学习】4.排序检索数据

         接下来我们创建这次要用的测试表,创建的sql语句如下

create table student (id int primary key auto_increment,
		name varchar(10) not null,
		score float);
insert into student values(null,'jack',93.5);
insert into student values(null,'tom',90);
insert into student values(null,'lucy',90);
insert into student values(null,'smith',90);
insert into student values(null,'abby',79.5);
insert into student values(null,'kelly',86);

【mysql学习】4.排序检索数据

【mysql学习】4.排序检索数据

         插入数据后查看数据是否添加成功,输入 select * from student; 如果显示如下,那么我们的准备工作就完成了。

【mysql学习】4.排序检索数据


排序检索数据

        在前面我们使用select进行查询的数据都是表里面存放的顺序,现在,我们来对查询出来的数据按照我们想要的顺序进行排序。

按单列排序

        我们使用order by 来对数据进行排序,order by放在select语句中的最后,order by排序默认是升序。下面我们来根据学生成绩进行排序。

select * from student order by score;

【mysql学习】4.排序检索数据


按多列进行排序

        在上面我们通过学生的分数进行了排序,但是排序后发现有3个学生的成绩都是90分,现在我们就规定,如果成绩相同,那么就按照名字进行排序。名字是字符串,字符串排序的比较方法就是按照字母进行比较的。

        我们使用多列排序,在order by后面写列名,多个列名用 , 进行隔开。

select * from student order by score, name;

【mysql学习】4.排序检索数据

        注意,order by后面写的列名顺序就是排序的顺序,例如上面我们是先写的score,再写的name,那么order by 就是先按照score进行排序,然后按照name进行排序。 


按列位置排序 

        按列位置进行排序和上面的排序是一样的,就是用数字来代替列名,例如,我们的名字 是第2列,那么我们就可以用 order by 2 来代替 order by name  

        下面我们使用列位置的方式来对分数和名字进行排序。

-- select * from student order by score, name;
-- 上下两条sql语句等效
  select * from student order by 3, 2;

【mysql学习】4.排序检索数据

         注意:使用列名进行排序可能会造成错用列名排序,在我们更改列之后,使用这种写法也容易造成对错误的数据进行排序。我们应当尽量避免使用这种用法。


指定排序方向 

        在上面我们使用order by进行排序,默认的都是升序排列,能不能使用降序进行排列呢?显然是可以的,我们使用关键字desc就行了,desc放在排序的列名后面即可。

        下面我们来对学生成绩进行降序排列。

select * from student order by score desc;

【mysql学习】4.排序检索数据

        上面我们在score后面使用了desc关键字,然后就是按照score进行降序排列,如果有多个列,想要都进行降序排列,我们就要在列名后面都加上desc关键字。列名后面不加desc关键字就是升序排列。

        下面我们来对学生成绩和名字都进行降序排列。 

select * from student order by score desc, name desc;

【mysql学习】4.排序检索数据


总结

        在这篇文章中我们使用order by来对检索的数据进行排序,默认是升序排序,如果想要进行降序排列,那么我们就要在每一列想要降序排序的列后面都加上desc关键字。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74868.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!