SQL排序:使用订单按命令,第1部分
要对SQL Select语句进行排序,请使用命令使用顺序。在这篇文章中,我们将查看使用订单的基础知识;在第2部分中,我们将通过主题介绍一些更高级的订单。
您有兴趣了解更多信息SQL编程?有很多良好的在线课程从中选择!
在SQL中排序:问题
由于SQL是一个数据库系统,因此对记录进行排序是SQL编程中的一个关键功能。当您从数据库中检索大量记录时,您需要能够以某种顺序对它们进行排序,以便您可以通过查看检索到的记录的列表轻松地找到特定的记录。为了真正有用,排序命令应该能够按任何可用列对记录进行排序。它还应该能够按指定的顺序按多个列进行排序,排序的顺序由一个非常复杂的表达式决定。在SQL中,ORDER BY命令可以完成所有这些工作。
检索一些记录
让我们从一个基本排序开始。在SQL中,使用SELECT命令检索记录,以格式从[表]中选择[Column_1,Column_2等],如下所示:
SELECT name,city, birthday,favorite_color FROM people;
这可能会产生以下结果:
Bob San Diego 06/07蓝色Cindy Kuala Lumpur 05/09 Orange Jane新加坡乐队12/27绿林旧金山01/17红兰迪柏林10/21黄色
做一个基本排序
要对记录进行排序,您将添加订单:
SELECT name,city,birthday,favorite_color FROM people
这会对这样的记录进行排序:
兰迪柏林10/21黄色Cindy吉隆坡05/09橙色鲍勃圣地亚哥06/07蓝林旧金山01/17红妖新加坡12/27绿色
如果您要将Sort命令更改为此:
按收藏品_color命令;
记录将按此顺序:
Bob San Diego 06/07蓝色简新加坡12/27绿色Cindy吉隆坡05/09橙色林旧金山01/17红兰迪柏林10/21黄色
上或下
请注意,记录总是按所选列的字母顺序排列的。如果您要按数字列排序,它们将从低数字到高数字排序。这是因为在默认情况下,ORDER by命令是按升序排序的。当然,大多数情况下,这样做是完全合理的,但有时你会想颠倒顺序;你可以使用DESC选项来做到这一点,它告诉ORDER BY按降序排序:
Chentory_Color DESC订购;
现在看看顺序:
兰迪柏林10/21黄林旧金山01/17红色辛迪吉隆坡05/09橙色简新加坡12/27绿色鲍勃圣地亚哥06/07蓝色
(注意,还有一个ASC选项,它显式地告诉ORDER BY按升序对记录进行排序。因为升序是默认的,你通常不需要指定ASC,但有时它可能会派上用场。)
对人好点
DESC选项是那些编程基础之一,它允许您友好地对待程序的用户。你可以给他们一个基本“排序方式”选择:允许他们输入或选择列,然后为他们提供的排序列表记录——如果他们需要找到附近的列表,他们可以滚动或页面直到他们发现它。但是如果你想要考虑得更周到一些,你可以包含一个“降序”选项,它会自动实现与Order BY的DESC选项。对于一长串的记录来说,这可能会带来很大的不同。
名称或编号
但如果不确定要从哪个表中选择记录呢?也许您正在编写一个程序,它可能使用多个表中的任意一个,每个表都有不同的列名,或者SQL查询可能请求不同的列,这取决于用户输入。在任何一种情况下,你都可以让你的代码更通用一点,通过使用列的相对位置排序,使用列号,而不是列名:
订购1;
无论列的名称为:,都将按第一列对记录进行排序:
Bob San Diego 06/07蓝色Cindy Kuala Lumpur 05/09 Orange Jane新加坡乐队12/27绿林旧金山01/17红兰迪柏林10/21黄色
多个列
对于一组很长的记录,您可能不仅希望按一列进行排序,而且希望按多列进行排序。例如,假设我们的数据库中有大量的人来自同一个城市;然后将它们按名称和城市进行分类将会很有用。ORDER By可以包含多个列,每个列的名称(或编号)用逗号分隔:
按城市订购,名称;
它将生成第一个由城市列订购的列表,然后由名称列提供:
兰迪柏林10/21黄色adrenne旧金山03/05兰特鲁斯林旧金山01/17红色xochil旧金山11/12绿松石简新加坡12/27绿色
请注意,通过许多SQL实现,您可以混合列名称和数字,如下所示:
订购2,名称;
逆转一列
您可以为单个列指定排序顺序,例如,初始排序是降序排序,而第二个排序是默认(升序)排序:
按城市DESC订购,名称;
会扭转排序的第一部分:
简新加坡12/27绿色肾上腺旧金山03/05黄绿色林旧金山01/17红色Xochtil旧金山11/12蓝绿色兰迪柏林10/21黄色
而这个命令将初始排序保留为默认顺序,并将第二种排序倒过来:
按城市订购,名称DESC;
将第二部分颠倒过来
兰迪柏林10/21黄色Xochtil旧金山11/12绿松石林旧金山01/17红色肾上腺旧金山03/05黄绿色简新加坡12/27绿色
您可以用ASC和DESC选项显式为每列进行分类顺序。
我们将介绍一些高级和专业的SQL分拣主题。如果您对在线SQL课程有兴趣,则有很多可供选择,包括开始和先进的课程,以及课程Oracle SQL.那Microsoft SQL Server, 和mysql.。