mcpField
Q
query-writing

query-writing

github.com/langchain-aiデータ・データベース30.7k1.3k 回インストール今日更新
リポジトリ

query-writing について

query-writingは、データベースツールを使ったSQLの作成、実行、エラー対応を案内するスキルです。単一または複数テーブルのデータから回答するエージェント向けで、読み取り専用の適切なクエリを重視します。

主な機能

  1. 01単純・複雑なクエリのワークフロー
  2. 02クエリ作成前のスキーマ確認
  3. 03JOINと集計の計画
  4. 04クエリ実行とエラー対応
  5. 05読み取り専用クエリの品質指針

活用シーン

  1. 01単一テーブルのデータに基づく質問への回答
  2. 02関連テーブルを結合した分析
  3. 03SQLエラーや予期しない結果の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/langchain-ai/deepagents --skill query-writing

インストール後、Claude Code で/query-writingを入力して読み込まれたか確認します。

詳細

クエリ作成スキル

シンプルなクエリのワークフロー

単一のテーブルに関する簡単な質問の場合:

  1. テーブルを特定する - データがあるテーブルはどれですか?
  2. スキーマを取得する - sql_db_schema を使って列を確認します
  3. クエリを作成する - 関連する列を SELECT し、WHERE/LIMIT/ORDER BY を指定します
  4. 実行する - sql_db_query で実行します
  5. 回答を整形する - 結果をわかりやすく提示します

複雑なクエリのワークフロー

複数のテーブルが必要な質問の場合:

1. アプローチを計画する

write_todos を使ってタスクを分解します:

  • 必要なテーブルをすべて特定する
  • リレーションシップ(外部キー)を確認する
  • JOIN の構成を計画する
  • 集計方法を決める
2. スキーマを調べる

各テーブルの sql_db_schema を使い、結合列と必要なフィールドを確認します。

3. クエリを構成する
  • SELECT - 列と集計
  • FROM/JOIN - FK = PK を使ってテーブルを結合
  • WHERE - 集計前のフィルター
  • GROUP BY - 集計対象でないすべての列
  • ORDER BY - 意味のある順序で並べ替え
  • LIMIT - デフォルトは 5 行
4. 検証して実行する

すべての JOIN に条件があり、GROUP BY が正しいことを確認してから、クエリを実行します。

例:国別の収益

SELECT
    c.Country,
    ROUND(SUM(i.Total), 2) as TotalRevenue
FROM Invoice i
INNER JOIN Customer c ON i.CustomerId = c.CustomerId
GROUP BY c.Country
ORDER BY TotalRevenue DESC
LIMIT 5;

エラーからの復旧

クエリが失敗した場合や、予期しない結果が返された場合:

  1. 結果が空 — スキーマに照らして列名と WHERE 条件を確認します。大文字と小文字の区別や NULL 値も確認します
  2. 構文エラー — JOIN、GROUP BY の漏れ、エイリアス参照を再確認します
  3. タイムアウト — より厳しい WHERE フィルターまたは LIMIT を追加して結果セットを減らし、その後調整します

品質ガイドライン

  • 関連する列のみをクエリします(SELECT * は使いません)
  • 必ず LIMIT を適用します(デフォルトは 5)
  • わかりやすさのためにテーブルエイリアスを使います
  • 複雑なクエリでは、計画に write_todos を使います
  • DML 文(INSERT、UPDATE、DELETE、DROP)は使用しません

コメント