クエリ(Query)とは、データベースに対して、データの取得や追加、更新、削除などを指示するための命令文のことです。英語で「問い合わせ」や「質問」を意味する言葉で、データベースに何を、どのように扱ってほしいかを伝える手段として使われます。
現実世界に例えると、クエリは図書館の司書へのリクエストのようなものです。「著者名が〇〇で、去年出版された本を探してください」と条件を伝えれば、司書が該当する本を探し出してくれます。データベースも同様に、クエリで伝えた条件に合うデータを探し出して返してくれます。
クエリとSQLの関係
データベースへの命令文を記述するための代表的な言語が「SQL」です。クエリという言葉自体は命令文全般を指す広い概念ですが、実際にはSQLを使って書かれたクエリが広く使われています。
代表的なクエリの種類
| 命令 | 内容 |
|---|---|
| SELECT | 条件に合うデータを取得する |
| INSERT | 新しいデータを追加する |
| UPDATE | 既存のデータを更新する |
| DELETE | 不要になったデータを削除する |
検索エンジンにおけるクエリ
データベース以外の場面でも「クエリ」という言葉は使われます。検索エンジンに入力する検索キーワードのことも「検索クエリ」と呼ばれ、利用者がどのような言葉で情報を探しているかを分析する際によく登場します。
クエリの最適化
扱うデータの量が増えるほど、クエリの書き方によって処理にかかる時間が大きく変わってくることがあります。無駄のない条件指定や、検索を高速化する仕組みである「インデックス」の活用によって、クエリの実行速度を改善することができます。
クエリを組み立てる際の考え方
クエリを作成する際は、「どの表から」「どのような条件で」「何を取り出すか」を順序立てて指定することが基本になります。複数の表を組み合わせて取り出したい場合は、表同士の関連付けも合わせて指定する必要があります。
クエリと日常の操作の関係
Webサイトの検索機能や、アプリの一覧画面の表示なども、裏側では利用者の操作に応じたクエリが自動的に組み立てられ、実行されています。普段意識することは少なくても、クエリは多くのシステムを支える基本的な仕組みのひとつです。
クエリを扱う際の注意点
利用者からの入力内容をそのままクエリに組み込んでしまうと、不正な命令を紛れ込ませる攻撃(SQLインジェクション)を許してしまう危険があります。入力内容を安全に扱う仕組みを取り入れることが、システムを開発するうえで欠かせません。
あわせて知っておきたい用語
- SQL:
データベースを操作するための代表的な命令文の言語です。 - RDB(リレーショナルDB):
クエリによって操作される、表形式のデータベースです。 - インデックス:
データの検索を高速化するための仕組みです。 - テーブル:
クエリの対象となる、行と列で構成されたデータの表です。 - SQLインジェクション:
不正なクエリを紛れ込ませてデータベースを攻撃する手法です。

コメント