
SQLとSaleforceのSOQLは似てるけど書き方って違うの?
書き方のルールは色々違いがあります!

この記事を書いた人

- エンジニア歴4年のフリーランスデータエンジニア
- 高卒工場勤務からエンジニア転職
- 3年目でフリーランスになり年収1000万↑達成
- フルリモ歴2年、2児の育児中
おすすめの エージェント | 特徴 | 詳しい解説は コチラ👇 |
---|---|---|
geechs job | ・大手企業との取引が多い ・リモート案件80%以上 | /geechs_job |
Midworks | ・クラウド会計ソフトfreeeの利用が無料 ・マージンが比較的低い | /midworks |
TECH STOCK | ・平均年収が935万円と高い ・フルリモート案件が72%以上 | /techstock |
PE-BANK | ・マージンが低く手取りが多い、福利厚生も充実 ・地方の案件も豊富に取り扱っている | /pe-bank |
techadapt | ・エージェント全員がエンジニア経験者 ・確定申告時の税理士報酬負担制度あり | /techadapt |
今回は、データベースを扱うときに使う「SOQL」と「SQL」という2つの言語の違いについてお話しします。
名前が似てますが、実は書き方にはいくつか違いがあります。この記事では、なるべく簡単に、そしてわかりやすくこの2つの違いを解説します!
本記事で取り扱うデータベースについて

- Account(取引先):企業や組織の情報。
- Contact(取引先責任者):Accountに関連する人物の情報。
- Order__C(注文):取引先に関連する注文情報。
SQLとSOQLとは?
まず、SQL(エスキューエル)とSOQL(ソーキューエル)について簡単に説明します。
- SQL :データベースという大きなデータの集まりから情報を引き出したり、追加したりするためのエンジニアには必須な基本言語です。
- SOQL :Salesforce(セールスフォース)で使われる特別なSQLのバージョンみたいなものです。
この2つは似ている部分もありますが、使うときのルールが少し違います。では、具体的にどこが違うのか、いくつか例を交えて見ていきましょう。
SQLとSOQLの書き方の違いについて
1. SELECT *
は使えない
SQLでは、すべてのデータを取得するために SELECT * FROM
と書きますが、SOQLでは SELECT *
は使えません。代わりに、FIELDS() という特殊な記述を使います。
SQLの例
SELECT * FROM Account;
SOQLの例
SELECT FIELDS(ALL) FROM Account;
SOQLは他にも以下のような書き方もあります。
- FIELDS(CUSTOM) — オブジェクトのすべてのカスタム項目を選択します。
- FIELDS(STANDARD) — オブジェクトのすべての標準項目を選択します。
2. DISTINCT
と GROUP BY
の違い
SQLで重複しないデータを取得する時、DISTINCT
を使います。例えば、異なる業種の取引先を取得したい場合です。しかし、SOQLには DISTINCT
がないので、GROUP BY
を使って同じようなことを行います。
SQLの例
SELECT DISTINCT Industry FROM Account;
SOQLの例
SELECT Industry FROM Account GROUP BY Industry;
3. NULL
の扱い方の違い
SQLでは NULL
は「何も値がない」という意味ですが、SOQLでは少し違います。SOQLでは、NULL
が通常の値の一つとして扱われます。これは、データベースの動作の違いによるものです。
SQLの例
SELECT * FROM Account WHERE Phone IS NULL;
SOQLの例
SELECT Id, Name FROM Account WHERE Phone = NULL;
5. NOT LIKE
が使えない
SQLでは、文字列の部分一致検索で LIKE
演算子を使いますが、その反対として NOT LIKE
を使うこともあります。しかし、SOQLでは直接 NOT LIKE
は使えず、NOT(LIKE)
という形で記述します。
SQLの例
SELECT * FROM Account WHERE Name NOT LIKE 'A%';
SOQLの例
SELECT Id, Name FROM Account WHERE NOT(Name LIKE 'A%');
6. コメントが書けない
SQLでは、コードの中にコメントを残すことができますが、SOQLではコメント機能がありません。これは、コードのメンテナンス性に影響するので注意が必要です。
SQLの例
-- これはコメントです
SELECT * FROM Account;
SOQLの例
/* SOQLにはコメントがありません */
SELECT Id, Name FROM Account;
まとめ
SOQLとSQLは似ている部分もありますが、ここにあげたもの以外にも色々な違いがあります。Salesforceでデータを扱う場合は、SOQLのルールをしっかりと理解しておくことが重要です。
ここでは主に以下の違いについて解説しました。
- SELECT * が使えない:SOQLでは
FIELDS(ALL)
を使います。 - DISTINCT はない:代わりに
GROUP BY
を使用。 - NULL の扱いが違う:SQLでは
IS NULL
、SOQLでは= NULL
。 - NOT LIKE が使えない:
NOT(LIKE)
で表現。 - コメントがない:SOQLにはコメント機能がありません。
これらの違いを理解し、Salesforceで効率的にデータを操作できるように頑張りましょう!
リモート案件を探せる エージェント | 特徴 |
---|---|
geechs job | 90%以上がリモート案件。高単価・優良案件が多い。 |
Midworks | フルリモート案件だけに絞って検索可能。福利厚生が手厚い。 |
TECH STOCK | 72%がリモート案件。平均年収935万。 |
PE-BANK | マージンが低く、福利厚生が手厚い。地方の案件も豊富。 |
techadapt | 条件を満たせば確定申告時の税理士費用を負担してもらえる。 |