SQL(構造化クエリ言語)を使用すると、クエリを通じてデータベースからデータを収集できます。また、そのデータを挿入、更新、および削除することもできます。
このブログ投稿では、SQLを使用してデータをフェッチし、結果を制限する方法に焦点を当てます。
SQLクエリの結果を制限する必要があるのはなぜですか?
データベースは通常、膨大なデータのコレクションです。すべての結果を取得する必要がない場合もあります。結果を制限するために、クエリを最適化できます。
クエリ結果を制限することは、DBのパフォーマンスにとって重要です。必要のないときに大きな結果をフェッチすると、データベースに余分な負荷がかかり、ユーザーエクスペリエンスに影響を与えます。
SQLでクエリ結果を制限する方法
SQL Server、Oracle、およびMySQLでは、データを制限するための構文が異なります。
- MySQLは
LIMIT
を使用します 。 - ORACLEは
FETCH FIRST
を使用します 。 - MSAccessとSQLServerは
TOP
を使用します 。
それぞれがどのように機能するかの例を以下に詳しく示します。
students
という名前の次のテーブルがあります 以下に示すように、詳細を示します:
ID | 名前 | 性別 |
---|---|---|
1 | ライアン | M |
2 | ジョアンナ | F |
3 | ミランダアンデルセン | F |
4 | ダリアマタ | F |
5 | リリアンナボイド | F |
6 | レキシーシャープ | M |
7 | ジャズリーンコルドバ | F |
8 | Brycen Werner | M |
9 | カリッサターナー | F |
10 | アイシャドドソン | F |
11 | アイディンリーブス | M |
MySQLでクエリを制限する方法
以下はMySQLの構文です。
SELECT (expression)
FROM
table_name
LIMIT 5;
例として、テーブルから最初の5つのレコードを選択します。
テーブルstudents
を使用してみましょう このデモンストレーションのために。
-- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
出力:
LIMITとORDERBYを組み合わせる方法
LIMITとORDERBYを組み合わせると、より意味のある結果を得ることができます。たとえば、これを使用して、試験で70%を超えるスコアを獲得した上位5人の学生を見つけることができます。
テーブルのstudents
を注文しましょう 列name
結果から上位5つを選択します。あなたはこのようにそれをすることができます:
SELECT * FROM students
order by name
LIMIT 5;
出力:
結果を制限する方法–Oracle構文
以下は、Oracleの最初の例と同等の構文です。
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
古いバージョンのOracleでは、ROWNUMを使用して、クエリによって返される行数を制限できます。
例:
SELECT * FROM
students
WHERE ROWNUM < 5;
SQLで結果を制限する方法–MSAccess構文
以下は、MSAccessの最初の例と同等の構文です。
SELECT TOP 5 * FROM students;
LIMIT機能は、並べ替えと組み合わせると、クエリの最適化に非常に強力です。効率的なクエリは、システム上で軽量であり、ユーザーにとって迅速です。該当する場合は、結果を制限することを常にお勧めします。