0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL入門:SQLの検索結果を自在にカスタマイズ!ORDER BY & LIMIT を使いこなすしてみた

Last updated at Posted at 2025-03-20

はじめに

データベースを扱う際、検索結果を特定の順番で並び替えたり、取得する件数を制限したりすることはよくあります。

SQLには、そうした処理を簡単に実現する ORDER BYLIMIT という便利な機能があります。

本記事では、これらの基本的な使い方から応用例まで詳しく解説していきます。

書こうと思ったきっかけ

データ分析やWeb開発において、データの並び替えや件数制限は頻繁に行われる操作です。

しかし、ORDER BYLIMIT の使い方を正しく理解していないと、意図しない結果を得たり、パフォーマンスが低下したりすることがあります。

そこで、基本的な構文から実際の活用例までをまとめ、スムーズにSQLを活用できるようにしたいと思いました。

事前準備

データベースがない場合は、まず作成してから選択します。

mysql> CREATE DATABASE my_database;
mysql> USE my_database;

テーブルの作成

まず、users テーブルを作成し、サンプルデータを挿入します。

テーブル作成のSQL

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    score INT
);

サンプルデータの挿入

INSERT INTO users (name, age, score) VALUES
('Alice', 25, 85),
('Bob', 30, 90),
('Charlie', 22, 88),
('David', 28, 92),
('Eve', 27, 80);

ORDER BY とは

ORDER BY は、SQLで取得するデータを特定の順序で並び替えるために使用される句です。デフォルトでは昇順 (ASC) で並び替えられますが、降順 (DESC) にすることもできます。

基本構文

SELECT カラム名 FROM テーブル名 ORDER BY カラム名 [ASC | DESC];

使用例

昇順に並び替え

SELECT name, age FROM users ORDER BY age ASC;

age の値が小さい順に users テーブルのデータを取得。

実際のターミナル画面

Screenshot 2025-03-20 at 19.00.51.png

降順に並び替え

SELECT name, age FROM users ORDER BY age DESC;

age の値が大きい順にデータを取得。

実際のターミナル画面

Screenshot 2025-03-20 at 19.01.45.png

複数のカラムで並び替え

SELECT name, age, score FROM users ORDER BY age ASC, score DESC;

age を昇順に並び替え、その中で score を降順に並び替える。

実際のターミナル画面

Screenshot 2025-03-20 at 19.02.21.png

LIMIT とは

LIMIT は、取得するデータの最大件数を制限するために使用される句です。大量のデータがある場合にパフォーマンスを考慮し、必要な件数のみ取得するのに役立ちます。

基本構文

SELECT カラム名 FROM テーブル名 LIMIT 件数;

使用例

上位3件を取得

SELECT name, age FROM users ORDER BY age ASC LIMIT 3;

age の昇順で上位3件を取得。

実際のターミナル画面

Screenshot 2025-03-20 at 19.02.53.png

OFFSET を使用して範囲指定

SELECT name, age FROM users ORDER BY age ASC LIMIT 3 OFFSET 2;

→ 3件取得するが、最初の2件をスキップして3件目から取得。

実際のターミナル画面

Screenshot 2025-03-20 at 19.03.26.png

ORDER BY と LIMIT の組み合わせ

ORDER BYLIMIT を組み合わせることで、ランキング上位や最新のデータのみを取得することができます。

例: 最新の5件を取得

SELECT * FROM orders ORDER BY created_at DESC LIMIT 5;

created_at の降順(最新順)で並び替え、最新の5件を取得。

例: スコア上位10件を取得

SELECT name, score FROM users ORDER BY score DESC LIMIT 10;

score の高い順に10件取得。

実際のターミナル画面

Screenshot 2025-03-20 at 19.04.08.png

まとめ

  • ORDER BY はデータの並び順を指定するために使用。
  • LIMIT は取得する件数を制限するために使用。
  • ORDER BYLIMIT を組み合わせることで、ランキングや最新データの取得が可能。

これらの機能を適切に活用することで、SQLのパフォーマンスを向上させながら必要なデータを効率よく取得できます!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?