SQLでDESCかASCか迷う理由はここにあった!使い分け方と覚えるポイント

エンジニア
記事内に商品プロモーションを含む場合があります
  • DESCとASCってどっちが降順?
  • いつも迷って調べてしまう

データベースのクエリ言語であるSQLを使うとき、データを並び替える「ORDER BY」句に出てくる「DESC」や「ASC」を見て、どちらを使えばいいか迷ったことはありませんか?

実は、この「DESC(降順)」と「ASC(昇順)」には明確な使い分けのポイントがあります。

本記事では、SQLにおける「DESC」と「ASC」の違いや、使い分けのコツを紹介します。

\1日5分でアプリでサクッと学習/
プログラミング単語帳

そもそも「DESC」と「ASC」って何?

SQLを使ってデータを並び替えるときに使う「ORDER BY」句。

ここでよく登場するのが「DESC」と「ASC」です。

ASC(昇順データを小さいものから順に並べる方法です。デフォルトでは「ASC」が設定されているので、特に指定しない場合は自動的にこの昇順で並べ替えが行われます。
数値:0から始まり、次に1、2、3と増えていく
アルファベット:Aから始まり、Zへ
日付:古い日付から新しい日付へ
DESC(降順)データを大きいものから順に並べる方法です。
数値:100から順に99、98と減っていく
アルファベット:Zから始まり、Aへ
日付:新しい日付から古い日付へ

どんな場面で迷うのか?

SQLを学び始めたばかりのころ、「DESC」と「ASC」のどちらを使えばいいのか、迷う場面が多いかもしれません。特に迷う理由として考えられるのは、次のような点です。

  1. 何を基準に並べたいかが曖昧
    例えば、名前順で並べたいのか、点数順で並べたいのか、日付順で並べたいのかといった基準がはっきりしないと、どちらを選べばいいか迷ってしまいます。

  2. 昇順と降順の違いが混乱する
    数字や文字の並び方に慣れていないと、昇順と降順の違いが混同しやすいです。「小さいものから並べるのがASC、大きいものから並べるのがDESC」という基本的なルールを覚えておけば、迷うことが少なくなります。

  3. 表示するデータの意図が曖昧
    自分が見たいデータの順番が明確でない場合、どちらを選べば目的に合うかが不明確になりがちです。例えば、最新の日付順で並べたいのか、古い日付順で並べたいのかなど、データの表示意図を明確にすることが大切です。

DESCとASCの使い分け方

では、実際にどうやって「DESC」と「ASC」を使い分ければいいのでしょうか?以下にいくつかの具体的な使い方を紹介します。

数値データの並べ替え

例えば、テストの点数を高い順に並べたい場合は、「DESC」を使います。これにより、最高点の生徒が一番上に表示されるようになります。一方、点数を低い順に並べたい場合は「ASC」を使います。点数が低い生徒から順に表示されます。

SELECT * FROM students ORDER BY score DESC;

日付データの並べ替え

日付データでは、新しいものから順に並べるなら「DESC」、古いものから順に並べるなら「ASC」を使います。例えば、ブログの投稿を最新順に並べる場合、「DESC」が通常です。

SELECT * FROM posts ORDER BY date DESC;

逆に、古い投稿から順に表示させたい場合は「ASC」を使用します。

SELECT * FROM posts ORDER BY date ASC;

文字列データの並べ替え

文字列では、名前順に並べるときに「ASC」を使うと、アルファベット順や五十音順で並べられます。逆に「DESC」を使えば、アルファベットや五十音の最後から順に並べられます。

SELECT * FROM customers ORDER BY name ASC;

迷わず覚えるポイント

実際に「DESC」と「ASC」を使い分けるためには、次のポイントを意識すると便利です。

  1. 目的を明確にする
    まずは、並べ替えの目的をはっきりさせましょう。例えば、点数を高い順に並べたいのか、名前をアルファベット順に並べたいのか、日付順に並べたいのかなど、具体的な目標を決めることが大事です。

  2. 頻繁に使う場面を覚える
    一度SQLに慣れてくると、使用頻度の高い並べ替えが見えてきます。点数や日付など、よく使う並べ替えでは「DESC」が頻繁に使われることが多いです。一方、名前などの文字列データでは「ASC」を使うことが一般的です。

  3. どちらがデフォルトかを意識する
    SQLでは、特に指定がない場合は「ASC」がデフォルトになります。そのため、わざわざ「ASC」を書かなくても昇順で並び替えられることを覚えておきましょう。「DESC」を指定する場合だけ明記するのがよいでしょう。

イメージで覚えるのもおおすすめ

数字が増えていくイメージ
日付は古いから新しい

数字が減っていくイメージ
日付は新しいから古い

SQLの学習なら【Schoo(スクー)】

Schoo(スクー)は 8,500授業以上の動画教材を配信していて、 SQLの学習も効率よく出来ますよ。

有料会員も月々手頃な値段で申し込めるので、登録しておいて間違いないです!

【Schoo(スクー)】
無料会員毎日配信される生放送が無料で視聴可能
プレミアム会員月980円で録画授業8,000本以上が見放題
※プレミアム会員の7日間無料体験あり
※無料会員になると登録後1時間は受け放題・最大2授業が無料
  • 「今日から役立つ実践スキル」が学べるライブ動画コミュニティ
  • ライブ授業、チャット機能で双方向で学べる
  • 8000本以上の授業で多様なジャンル
  • 「一生学べる学校」をすべての社会人が学べるコンテンツを配信

【Schoo(スクー)】

まとめ

「DESC」と「ASC」は、データの並べ替えにおいて非常に重要な要素です。

どちらを使うか迷ったときは、目的や表示したい順序をしっかり確認し、適切に使い分けることがポイントです。数値データなら「DESC」で高い順、文字データなら「ASC」で名前順など、よくある使い方を覚えておけば、SQLのクエリもスムーズに書けるようになります。

これで、あなたも「DESC」と「ASC」の使い方に迷うことはなくなるでしょう!

タイトルとURLをコピーしました