Comenzar con las consultas SOQL
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Construir una consulta SOQL válida utilizando las cláusulas requeridas.
- Filtrar los resultados de la consulta por múltiples condiciones.
- Ordenar los resultados de la consulta.
Si este es su primer paso en el recorrido para desarrollar competencias de codificación Apex, ha llegado demasiado lejos. Dé un paso atrás y obtenga las insignias de Aspectos básicos de Apex para administradores y Programación orientada a los objetos para administradores antes de continuar con este módulo.
¿Ya ha ganado esas insignias? ¡Excelente trabajo! Ahora que tiene una comprensión básica de cómo crear clases, variables y sObjects, es momento de aprender sobre Salesforce Object Query Language (lenguaje de consulta de objetos), también conocido como SOQL (pronunciado "sockle").
¿Qué es SOQL?
SOQL es un lenguaje que obtiene datos de registros de una base de datos de Salesforce. En Programación orientada a los objetos para administradores, ha aprendido que puede utilizar instrucciones de Data Manipulation Language (DML) (lenguaje de manipulación de datos) para insertar, actualizar y eliminar registros. Pero ¿qué sucede si desea obtener datos que ya existen en la base de datos? SOQL facilita la recuperación de datos.
Crear consultas SOQL es similar a crear un informe. Cuando crea un informe, responde preguntas como las siguientes:
- ¿Qué campos quiero mostrar?
- ¿Dónde se encuentran esos campos?
Hace las mismas preguntas cuando crea una consulta SOQL. En una consulta, las respuestas a estas preguntas son los campos y el objeto.
Esta consulta contiene palabras clave de SOQL (SELECT
[SELECCIONAR] y FROM
[DE]), campos de registro (Name
[Nombre] e Email
[Correo electrónico]) y un objeto (Contact
[Contacto], que es estándar).
¿Qué está haciendo esta consulta? Está recuperando (obteniendo) información especÃfica sobre los registros de contacto en la base de datos. Examinemos cómo encajan estas partes y practiquemos escribiendo algunas consultas. Primero, veamos las partes necesarias de una consulta SOQL.
Cláusulas necesarias en una consulta SOQL
SELECT
En la base de cualquier consulta SOQL hay dos cláusulas: la cláusula SELECT (SELECCIONAR) y la cláusula FROM (DE). Piense en una cláusula como una pieza de un rompecabezas. Es una parte de una consulta completa.
Toda consulta SOQL tiene una cláusula SELECT (SELECCIONAR) que comienza con la palabra clave SELECT
(SELECCIONAR). La cláusula SELECT especifica uno o más campos (separados por comas) en un registro de Salesforce. Esta consulta de ejemplo devuelve dos campos: Name
(Nombre) e Email
(Correo electrónico).
Una nota sobre los nombres de los campos: como administrador, cuando hable con otro administrador, probablemente se refiera a un campo por su etiqueta de campo; pero, en el código, los desarrolladores utilizan los nombres de API en su lugar. Asà que, en sus consultas SOQL, siempre use los nombres de API de los campos, y no las etiquetas de los campos. Si no está seguro de cuál es el nombre de API de un campo, no se preocupe: hay formas de averiguarlo. Veremos más sobre eso más adelante en este módulo.
FROM
La segunda cláusula que se requiere para crear una consulta SOQL es la cláusula FROM (DE).
Comenzando con la palabra clave FROM
(DE), la cláusula FROM especifica un objeto en su base de datos de Salesforce. En este caso, queremos datos del objeto Contact
(Contacto). Veamos cómo se ve la información cuando ejecutamos la consulta.
Siga el proceso con Trail Together
¿Desea seguir el proceso con un experto a medida que realiza este paso? Eche un vistazo a este vÃdeo, parte de la serie Trail Together en Trailhead Live. Encontrará un vÃnculo a la sesión completa en la sección Recursos.
¿Preparado para ponerse manos a la obra con SOQL?
En esta unidad, le mostramos los pasos para construir una consulta SOQL en el editor de consultas de Developer Console. No tenemos desafÃos prácticos en esta unidad; pero, si desea seguir los pasos e intentarlos, cree un nuevo Trailhead Playground ahora. Consulte el módulo Gestión de Trailhead Playground para obtener más información. Normalmente, Salesforce tarda entre 3 y 4 minutos en crear un Trailhead Playground. También usará Playground cuando sea el momento de completar los desafÃos prácticos más adelante en este módulo.
Construir una consulta utilizando el editor de consultas.
- En su Trailhead Playground, haga clic en
y, a continuación, seleccione Developer Console.
- Haga clic en File | Open | Objects | Contact (Archivo | Abrir | Objetos | Contacto).
- Haga clic en Open (Abrir).
El objeto Contact (Contacto) se abre mostrando los nombres y tipos de todos los campos asociados con él. - En el panel inferior, seleccione la ficha Query Editor (Editor de consultas). (Si no ve las fichas, haga clic en la flecha hacia arriba en la parte inferior de la ventana).
El editor de consultas tiene tres secciones. La sección superior izquierda (1) muestra la consulta. Puede editar la consulta ahÃ. La sección inferior izquierda (2) muestra los errores. Y la sección derecha (3) almacena un historial de las consultas SOQL ejecutadas. - Usando CTRL + clic (Windows) o CMD + clic (Mac), seleccione los campos Email, Name (Nombre) y Languages__c (Idiomas__c).
- Haga clic en Query (Consulta).
La consulta SOQL, basada en el objeto y los campos que ha seleccionado, se mostrará en el editor de consultas. Observe que, cuando selecciona un campo en Query Builder (Creador de consultas), se inserta automáticamente el nombre de API del campo en la consulta SOQL. Con esta herramienta, no es necesario memorizar los nombres de API ni buscarlos. - Haga clic en Execute (Ejecutar).
Después de ejecutar la consulta, los resultados muestran exactamente lo que se ha solicitado. Además, cuando usa el editor de consultas, Id (Identificador) se devuelve como un extra. ¡MagnÃfico!
Cláusulas opcionales en SOQL
Se requieren las cláusulas SELECT y FROM, pero SOQL también tiene cláusulas opcionales para refinar su consulta.
Las consultas de ejemplo que crea en su Trailhead Playground devuelven un número bastante pequeño de registros. La última consulta devolvió 20 registros. ¿Pero qué pasarÃa si hubiera miles de registros? La cantidad de poder de cómputo necesario para procesar esos datos serÃa considerable. ¿No serÃa genial si SOQL tuviera una forma de devolver un subconjunto de todos los registros? En realidad, sà que lo tiene.
WHERE
La cláusula WHERE (DÓNDE) establece las condiciones que un registro debe cumplir para ser seleccionado y devuelto. Use la cláusula WHERE de la misma manera que utiliza los filtros para limitar los datos mostrados en una vista de lista o en un informe. Por ejemplo, si estamos buscando un contacto cuyo primer nombre sea Stella, podemos añadir WHERE FirstName = 'Stella'
al final de nuestra consulta, de esta manera:
También puede definir la cláusula WHERE para filtrar utilizando más de una condición. Hay varias formas de hacer esto utilizando tres operadores: AND (Y), OR (O) e IN (EN). Consideremos algunos ejemplos.
AND |
Use AND (Y) para devolver registros que cumplan dos condiciones. Esta consulta devuelve todos los registros que tienen el primer nombre Stella y el apellido Pavlova. |
OR |
Use OR (O) para devolver registros que cumplan una de dos condiciones. Esta consulta devuelve registros con el apellido James o el apellido Barr. |
IN |
Use IN (EN) para devolver registros que cumplan al menos una de tres o más condiciones. La cláusula IN (EN) se utiliza comúnmente para devolver los valores de una lista de selección o valores de LIST (LISTA) o SET (CONJUNTO). IN (EN) simplifica una consulta que de otro modo tendrÃa muchas condiciones OR (O). Esta consulta devuelve todos los registros que tienen el apellido James, Barr, Nedaerk o Forbes. |
LIMIT
La palabra clave LIMIT
(LIMITAR) establece el número máximo de registros que se devolverán. LIMIT es útil cuando usted está probando y no desea esperar a que una consulta procese un conjunto grande de datos. A medida que aprenda más sobre SOQL, descubrirá formas más relevantes de evitar devolver demasiados registros; pero, hasta entonces, LIMIT es una solución sencilla. Intentemos añadir un lÃmite a nuestra consulta.
- Vuelva al editor de consultas en Developer Console.
- Al final de la consulta, escriba
LIMIT 5
(LIMITAR 5), de modo que quede asÃ: - Haga clic en Execute (Ejecutar).
El panel de resultados de consulta muestra cinco resultados.
ORDER BY
Ahora que tiene control sobre la cantidad de resultados, ¿cómo puede organizar esos resultados? Utilice la cláusula ORDER BY
(ORDENAR POR) para ordenar los resultados según el valor de un campo especÃfico. Por otro lado, utilice un calificador en la cláusula ORDER BY (ORDENAR POR) para especificar el orden ascendente (predeterminado) o descendente, tal como lo harÃa en una hoja de cálculo. Por último, si tiene muchos valores de campo vacÃos, use el calificador NULLS (NULOS) para agrupar todos los valores NULL (NULO) al principio (predeterminado) o al final.
Sintaxis |
Descripción |
Ejemplo |
ASC |
Devuelve los resultados en orden ascendente |
|
DESC |
Devuelve los resultados en orden descendente |
|
NULLS FIRST | LAST |
Devuelve los registros nulos al principio (NULLS FIRST) o al final (NULLS LAST) |
|
En el ejemplo de ASC, SELECT Name, Email FROM Contact ORDER BY Name ASC LIMIT 5
(SELECCIONAR Nombre, Correo Electrónico DE Contacto ORDENAR POR Nombre ASC LIMITAR 5) devuelve los campos Name
(Nombre) e Email
(Correo electrónico) de cinco contactos, ordenados en orden ascendente por nombre.
En el ejemplo de NULLS, SELECT Name, Email FROM Contact ORDER BY Email NULLS LAST
(SELECCIONAR Nombre, Correo Electrónico DE Contacto ORDENAR POR Correo Electrónico NULLS AL FINAL) devuelve el nombre y el correo electrónico en orden ascendente (porque el orden ascendente es el predeterminado) por correo electrónico. Los registros sin dirección de correo electrónico se agrupan al final.
Con esta introducción al poder de SOQL, ahora puede recuperar grandes conjuntos de datos, establecer lÃmites para obtener resultados muy especÃficos y organizar los datos devueltos según sus necesidades. ¡Nada mal!