Salesforce オブジェクト クエリ言語 (SOQL) は、Salesforce 組織からデータを照会するために使用される言語です。 ソフトウェアエンジニア 金 アナリスト の背景を持つ SQL SOQL は構文的になじみがあるかもしれませんが、開始する前に知っておくべき重要な違いがいくつかあります。
SQL と SOQL の違いは何ですか?
SQL はデータベース内のデータのクエリと管理に使用されるプログラミング言語であり、SOQL は特に Salesforce からのデータのクエリに使用される言語です。
SOQL とは
SOQL は、クエリ専用の言語です。 データベース 従来の SQL のようにデータを変更するのではなく、 ここにはない INSERT
金 UPDATE
ステートメント。 データの変更は、Salesforce のユーザー インターフェイス (UI) または Apex DML、Salesforce 独自のプログラミング言語の一部です。 SOQL では、Salesforce オブジェクトは SQL テーブルとして表されます。
SOQL と SQL の違い
選択する
お茶 SELECT
SOQL クエリの句は SQL に似ていますが、次の 1 つの重要な例外があります。 SELECT *
許可されていません。 選択するフィールドを指定する必要があります。 SQL と SOQL のクエリの例を見てみましょう。
SQL:
SELECT * FROM Lead
これは、SOQL でより具体的にする必要があります。
SOQL:
SELECT Id, Name, Company, Industry FROM Lead
加入
SOQL を使用する場合の最も重要な違いは、結合の処理です。 お茶 JOIN
キーワードは SOQL には実際には存在しません。 さらに、関連するオブジェクトのみを一緒にクエリできます。
親子関係または子対親関係は、Salesforce で最も一般的で単純な関係です。 取引先 (親) と取引先責任者 (子) の関係を使用して、SOQL の「結合」の概念を示します。
子から親へ
子から親への関係を照会するには、単純なドット表記を使用します。 同じアクションを実行するこれらのクエリを比較してみましょう。
SQL:
SELECT Contact.Name, Contact.Email, Account.Name
FROM Contact
LEFT JOIN Account ON (Contact.AccountId = Account.Id)
SOQL:
SELECT Name, Email, Account.Name FROM Contact
このドット表記を使用して、いくつかの関係をトラバースすることもできます。 に相当する 3 つ以上のテーブルを結合する.
SQL:
SELECT Contact.Name, Contact.Email, Account.Name, User.Name
FROM Contact
LEFT JOIN Account ON (Contact.AccountId = Account.Id)
LEFT JOIN User ON (Account.OwnerId = User.Id)
SOQL:
SELECT Id, Name, Account.Name, Account.Owner.Name FROM Contact
親子
親子関係は、子オブジェクトの複数形とサブクエリを使用してクエリされます。 SELECT
句。
SQL:
SELECT Account.Name, Contact.Name, Contact.Email
FROM Account
LEFT JOIN Contact ON (Account.Id = Contact.AccountId)
SOQL:
SELECT Name, (SELECT Name, Email FROM Contacts) FROM Account
集計関数
集計関数は、従来の SQL と同様に SOQL で使用されます。 利用可能な集計関数は次のとおりです。 COUNT()
、 MIN ()
、 MAX ()
、 AVG ()
、 SUM ()
、 と COUNT_DISTINCT()
.
すべてのレコードを数えるにはわずかな違いがあります。
SQL:
SELECT COUNT(*) FROM Account
SOQL:
SELECT COUNT() FROM Account
そしてその COUNT_DISTINCT
関数を使用すると、特定のフィールドの異なる値の数を簡単に識別できます。
SQL:
SELECT COUNT(DISTINCT MailingCountry) FROM Contact
SOQL:
SELECT COUNT_DISTINCT(MailingCountry) FROM Contact
その他のキーワード
SQL でよく使用されるその他のキーワード — WHERE
、 LIMIT
、 OFFSET
、 GROUP BY
、 HAVING
、 LIKE
、 AND
、 OR
など — 従来の SQL としてサポートされ、フォーマットされています。
SQL:
SELECT MailingCountry, Count(Id)
FROM Contact
WHERE MailingCountry IS NOT NULL
GROUP BY MailingCountry
HAVING Count(Id) > 1
LIMIT 10
SOQL:
SELECT MailingCountry, Count(Id)
FROM Contact
WHERE MailingCountry != NULL
GROUP BY MailingCountry
HAVING Count(Id) > 1
LIMIT 10
SOQL でクエリを実行する方法
SOQL クエリを記述するためのいくつかの異なるオプションがあります。 Salesforce 内で開発者コンソールのクエリ エディターを使用できます。 セールスフォース ワークベンチ または Apex コード内のインライン SOQL。 クエリ可能なすべてのオブジェクトとフィールドが表示され、結果を CSV ファイルにすばやくエクスポートできるため、クエリ エディターよりも Workbench の方が好みです。 Workbench には、クエリを宣言的に記述するオプションも用意されています。これは、SQL の経験があまりない初心者に役立ちます。
.