なぜこう書くのか
コードの解説依頼はAIが最も得意とするタスクの一つですが、説明の「順序」と「深度」を指定しないと出力結果に大きなばらつきが生じます。このプロンプトはその2点を固定します。
役割を「初心者を教える講師」に設定することで、説明の深さが適切に定まります。同じクエリでも「シニアDBA」に依頼すると、実行計画やインデックスの話題が先に出てきてしまいます。文脈でデータベースの種類を伝えるのは、製品ごとに構文が微妙に異なるためです。LIMIT はMySQLやPostgreSQLにありますが、SQL Serverでは TOP を使い、日付関数も製品によって異なります。この一言があるだけで、見当違いな構文の指摘を防げます。
課題の段落における「実行順序基準」が最大のポイントです。SQLは記述順(SELECTが先頭)と実行順(FROMが先頭)が異なり、初心者が最もつまずきやすいのもこの点です。順序を明示することで、「なぜWHERE句で別名(エイリアス)が使えないのか」といった疑問も自然と解消されます。
形式の「一言で言うと〜」という要約文は全体のイメージを先に掴ませ、「3行のサンプルデータ」は結果のテーブルを具体的にイメージさせます。この2つがないと、説明は正しくても読み終えた後に「結局どんなデータが出るの?」という疑問が残ります。制約の「1〜2点だけ」は、AIが些細なコーディングスタイルの指摘で説明を長引かせるのを防ぎます。クエリを """ で囲むのは、クエリ内のコメント(-- ここは削除 など)がプロンプトの指示として誤認されないようにするためです。
用語が分からなければAha AIで: prompt, hallucination
悪い例との比較
このクエリを説明してください SELECT ... (クエリを貼り付け)
解説自体は出力されますが、SELECT句から書かれた順になぞるだけになりがちで、初心者が本当に知りたい「いつデータが絞り込まれ、いつ集計されるのか」が見落とされます。また、どのDBかわからないため、関係のない構文の注意点が含まれることもあります。
バリエーション
クエリを改善・リファクタリングしたいとき
あなたは{{データベース}}のパフォーマンスチューニング経験が豊富なデータエンジニアです。以下のクエリの解説は不要ですので、同じ結果を返しつつ、より可読性が高い、または高速に動作するクエリへ修正してください。修正後のクエリ → 変更内容と理由の表(変更前・変更後・理由) → 結果が変わる可能性がある場合の注意点、の順で回答してください。確証のない最適化案は提案しないでください。
""" {{クエリ}} """
役割をエンジニアに変え、「解説は不要」と明示しました。「確証のない最適化案は提案しないでください」と釘を刺すことで、効果が不確かなヒントが出力されるのを防ぎます。
要約だけをサッと知りたいとき
以下の{{データベース}}クエリが何を行っているのか、非エンジニアにもわかるように2文以内で要約してください。専門用語は使わないでください。
""" {{クエリ}} """
企画担当者やマネージャーにクエリの目的を手短に共有したいときに便利です。
モデル別の注意
テーブル構造が不明な場合、AIはカラム名の意味を推測します。CREATE TABLE文やカラム一覧を併せて貼り付けると、解説の正確性がさらに向上します。
関連プロンプト
最終更新 2026-09-02 · 誤りがありますか? 知らせる