用語解説
SOQL(Salesforce Object Query Language)とは、Salesforceのデータを検索・取得するためのSQLライクなクエリ言語です。
標準的なSQLと似た構文(SELECT … FROM … WHERE …)を持ちますが、Salesforceのオブジェクト・リレーション構造に対応した拡張機能を持ちます。親子関係・子親関係のリレーショナルクエリ(サブクエリ)が可能で、例えば「取引先に紐づく商談を一度に取得する」といったクエリが書けます。Apexコードや開発者コンソール・Workbenchから実行でき、API経由でのデータ抽出にも使われます。SELECT COUNT()などの集計関数もサポートしています。ただしSQLのJOINや副問合せに相当する機能はSOQLではリレーション構文で代替します。
どんな場面で活用するか
- Apexトリガー・クラス内で条件に合うレコードを効率的に取得したい
- 開発者コンソール・Workbenchでデータの内容を確認・デバッグしたい
- 外部システムからSalesforce REST APIでデータを取得する際のクエリを組み立てたい
よくある誤解
判断のヒント
効率的なSOQL記述のコツ:取得フィールドは必要最低限に絞り(SELECT *はNG)、WHEREの絞り込み条件を正確に指定してレコード数を最小化しましょう。ガバナー制限(1回のトランザクションで100クエリ上限)を意識した設計が、Apex開発では特に重要です。