データベースの用語一覧へ
このページの目次
データベース初級図解あり

クエリとは?

読み方:くえり

最終更新:2026/08/18

3秒でわかる

データベースに条件を伝えて欲しいデータを取り出す問い合わせ。SQL で書き、大量のレコードから必要な行と列だけを絞り込むために使います。

30秒図解

クエリは2024年のIT書を新しい順に10冊という条件をSQLでDBへ渡し、DBが索引と実行計画を選んで必要な10冊だけ返す
クエリは欲しい結果の条件を伝え、最短の取り出し方はDBに任せる質問です。

もう少し詳しく

どういうものか

クエリは、データベースへの問い合わせです。英語の query が「質問」を意味するとおり、「この条件に合う行を、この順番で、この件数だけください」と伝える文で、SQL という言語で書きます。

取得だけを指すこともありますが、実務では追加・更新・削除も含めて「クエリを投げる」と言います。アプリからも、管理画面からも、BI ツールからも、データベースに触るときは最終的にクエリが発行されています。

なぜ必要か

数百万行あるテーブルから欲しいのは数十行、という状況がふつうです。全件をアプリ側に読み込んでプログラムで絞り込むこともできますが、転送量もメモリも時間も桁違いに増えます。

データベースは、どの索引を使えば最短で目的の行にたどり着けるかを実行計画として自分で組み立てます。条件をクエリとして渡すのは、その最適化をデータベースに任せるためです。集計もデータのある場所でやるほうが速く済みます。

具体例

-- 在庫のある商品を、カテゴリごとに集計する SELECT c.name AS category, COUNT(*) AS product_count, ROUND(AVG(p.price)) AS avg_price FROM products AS p <a href="/glossary/join" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">JOIN</a> categories AS c ON c.id = p.category_id WHERE p.stock > 0 GROUP BY c.name HAVING AVG(p.price) > 500 ORDER BY avg_price DESC LIMIT 10; -- どう<a href="/glossary/process-flow" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">処理</a>されるかを確認する(索引が使われているか見る) EXPLAIN SELECT * FROM products WHERE price < 1000;

つまずきやすいところ

WHEREHAVING の使い分けが最初の関門です。WHERE は集計する前の行を絞り、HAVING は集計した結果を絞ります。WHERE COUNT(*) > 3 は書けません。

NULL の比較も引っかかります。= NULL は真にも偽にもならず、必ず IS NULL を使います。NULL を含む列に <> 'A' を書くと、NULL の行が結果から静かに消えます。

ORDER BY を書かずに LIMIT 10 だけ書くと、返る 10 件は毎回同じとは限りません。並び順を指定していない以上、データベースは都合のよい順で返してよいからです。

そして最重要が、利用者の入力を文字列連結でクエリに埋め込まないことです。SQL インジェクションの入口になります。値は必ずプレースホルダで渡します。

似た用語との違い

用語指すもの
クエリデータベースへの問い合わせそのもの
SQLクエリを書くための言語
クエリ文字列URL の ? 以降のパラメータ。名前が似ているだけの別物
クエリビルダSQL をプログラムのメソッド呼び出しで組み立てる仕組み


覚え方

query は質問。図書館の司書に「2024 年の IT 書を、新しい順に 10 冊」と頼む文がそのままクエリの形です。

次に学ぶ

JOINとは?

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地クエリDB

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

この用語を扱うコース

コース

SQL入門:データベース操作のきほん

71レッスン
コース

DB設計入門 ER図・正規化・インデックス

47レッスン
コース

SQL道場 図書館DBに挑む10問

10レッスン
SQL・データベースコースの全編を見る