Executar consultas SOQL e SOSL
Objetivos de aprendizagem
- Executar uma consulta SOQL usando o editor de consulta ou no código do Apex.
- Executar uma pesquisa SOSL usando o editor de consulta ou no código do Apex.
O que é uma consulta SOQL?
SOQL significa Salesforce Object Query Language (Linguagem de consulta do Salesforce Object). Você pode usar SOQL para ler informações armazenadas no banco de dados de sua organização. A SOQL é sintaticamente similar à SQL (Structured Query Language, Linguagem de consulta estruturada).
Você pode escrever e executar uma consulta SOQL no código do Apex ou no editor de consulta do Developer Console.
Executar uma consulta SOQL
- Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
- Copie o seguinte código, cole-o e execute-o. Esse código adiciona os detalhes de contato de três Engenheiros de controle ao objeto Contato em seu banco de dados.
// Add first contact and related details Contact contact1 = new Contact( Firstname='Quentin', Lastname='Foam', Phone='(415)555-1212', Department= 'Specialty Crisis Management', Title='Control Engineer - Specialty - Solar Arrays', Email='qfoam@trailhead.com'); insert contact1; // Add second contact and related details Contact contact2 = new Contact( Firstname='Vega', Lastname='North', Phone='(416)556-1312', Department= 'Specialty Crisis Management', Title='Control Engineer - Specialty - Propulsion', Email='vnorth@trailhead.com'); insert contact2; // Add third contact and related details Contact contact3 = new Contact( Firstname='Palma', Lastname='Sunrise', Phone='(554)623-1212', Department= 'Specialty Crisis Management', Title='Control Engineer - Specialty - Radiators', Email='psunrise@trailhead.com'); insert contact3;
Agora podemos usar o editor de consulta para escrever e executar uma consulta SOQL para encontrar esses Engenheiros de controle. Consultas SOQL pesquisam dados em objetos específicos. Você pode adicionar uma condição opcional na cláusula WHERE para restringir sua pesquisa. - Insira a seguinte consulta na guia Query Editor (Editor de consulta).
SELECT Name, Phone, Email, Title FROM Contact WHERE (Department = 'Specialty Crisis Management')
- Clique em Execute (Executar).
Os resultados exibem os detalhes dos contatos que trabalham no departamento de Gerenciamento de crises especializado.
Você pode usar outra consulta SOQL para encontrar contatos em outros departamentos ou para ver se mais alguém criou registros para outros Engenheiros de controle. Para executar novamente uma consulta, clique em Refresh Grid (Atualizar grade) no painel Query Results (Resultados da consulta).
Uma consulta SOQL executada usando o código do Apex é chamada de consulta SOQL inline. Vamos ver como você pode usar o Developer Console para pesquisar contatos que trabalham no departamento especializado de gerenciamento de crises usando uma consulta SOQL inline.
- Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
- Insira o seguinte código.
Contact[] theseContacts = [SELECT Name, Phone, Email, Description FROM Contact WHERE (Department='Specialty Crisis Management') ORDER BY Name]; // Log a count of how many contacts were found System.debug(theseContacts.size() + ' contact(s) returned.'); // Log all values in the array of contacts System.debug(theseContacts);
- Depois que o código tiver sido executado, abra o registro.
- Para visualizar apenas as mensagens USER_DEBUG, selecione Debug Only (Apenas depuração). Os resultados mostram o número de contas retornadas e os detalhes de contato em ordem alfabética.
Para saber mais sobre consultas SOQL, consulte o módulo Banco de dados e noções básicas do Apex.
O que é uma pesquisa SOSL?
SOSL (Salesforce Object Search Language – Linguagem de pesquisa do Salesforce Object) é uma linguagem que executa pesquisas de texto em registros. Diferentemente da SOQL, a SOSL pode pesquisar diversos tipos de objetos ao mesmo tempo. A SOSL também pode usar uma correspondência de palavras para comparar campos, enquanto a SOQL precisa da frase exata.
Quando você executa uma pesquisa SOSL para registros de contatos usando a palavra “Crise”, sua pesquisa procura em todos os campos dos contatos e retorna todos os registros contendo essa palavra. Mas se você tentar a mesma coisa em uma consulta SOQL, você precisa especificar os campos a serem pesquisados e uma palavra ou expressão completa a ser pesquisada. Você também pode usar LIKE
ou curingas para restringir pesquisas SOQL ou SOSL.
Executar uma pesquisa SOSL
- Na guia Editor de consulta, insira a consulta SOSL a seguir. Observe que somente parte do nome do departamento de Gerenciamento de crises especializado está incluído na consulta.
FIND {Crisis} IN ALL FIELDS RETURNING Contact(FirstName, LastName, Phone, Email, Title)
- Execute a consulta, depois observe os resultados no painel Resultados da pesquisa.
- Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
- Execute o seguinte código.
List<List<sObject>> searchList = [FIND 'Crisis' IN ALL FIELDS RETURNING Contact(FirstName, LastName, Phone, Email, Description)]; Contact[] searchContacts = (Contact[])searchList[0]; System.debug('Found the following contacts:'); for (Contact c : searchContacts) { System.debug(c.LastName + ', ' + c.FirstName); }
- Abra o registro e selecione a opção Debug Only (Apenas depuração).
O painel de registro Execution Log (Registro de execução) lista os nomes dos Engenheiros de controle.
Para saber mais sobre como funcionam as pesquisas SOSL, consulte o módulo Banco de dados e noções básicas do Apex.
Enquanto você estava brincando com SOQL e SOSL, os Engenheiros de controle cujos registros você estava procurando manobraram sua nave espacial para longe do caminho do asteroide. No final das contas, comandar uma nave espacial não é tão difícil assim: você só precisa ter um bom console e aprender a delegar!
Agora que evitou uma colisão com o asteroide 2014 QO441, você decide aterrizar na Estação espacial de Netuno para fazer uma pausa merecida. Conhecendo as diversas funções e recursos do Developer Console, você pode dirigir sua organização em muitas missões de sucesso.