Volver a la lista de artículos Artículos
Lectura de 7 minutos

Enumerar y explicar todos los elementos básicos de una consulta SQL

"¿Cuáles son los elementos básicos de una consulta SQL?" es una pregunta popular en las entrevistas de trabajo de SQL. En este artículo, repasamos la sintaxis básica de una consulta SQL.

Una consulta SQL, que solicita información de una base de datos relacional, consta de varios elementos. Estos permiten seleccionar columnas específicas de tablas específicas y filtrar y ordenar esta información si es necesario. En este artículo, revisaré brevemente estos elementos explicando lo que hace cada uno de ellos y cómo utilizarlos.

Elementos Básicos de una Consulta SQL

SELECT

La sentencia SELECT es lo primero que encontrarás cuando empieces a aprender SQL. Con la sentencia SELECT, usted elige las columnas que se mostrarán en la salida.

Por ejemplo, imaginemos que somos analistas de datos en el Louvre. Tenemos varias tablas en nuestra base de datos, entre ellas las de artworks y artists.

artworks
idtitleartist_idyeartype
111The Mona Lisa121506painting
112Jean-Baptiste Poquelin (Moliere)141787sculpture
113The Wedding Feast at Cana111563painting
114The Lacemaker131670painting
115A River141759sculpture

artists
idnameyear_birthyear_death
11Paolo Veronese15281588
12Leonardo da Vinci14521519
13Johannes Vermeer16321675
14Jean-Jacques Caffieri17251792

Nuestra primera tarea es obtener alguna información básica sobre las obras de arte que exponemos, en concreto, el title, el año de creación y el tipo de obra. Esta es la consulta para solicitar esta información:

SELECT title, year, type
FROM artworks;

En la sentencia SELECT, simplemente enumeramos las columnas que queremos ver. Este es el resultado:

titleyeartype
The Mona Lisa1506painting
Jean-Baptiste Poquelin (Moliere)1787sculpture
The Wedding Feast at Cana1563painting
The Lacemaker1670painting
A River1759sculpture

Puedes obtener más ejemplos de SELECT en este artículo sobre cómo escribir una sentencia SELECT. También puedes consultar nuestro SQL para principiantes para empezar a aprender SQL de forma interactiva.

FROM

Como ha visto en nuestro primer ejemplo, al elegir las columnas que se van a mostrar, también hay que especificar la tabla donde se almacenan estos datos. Esto se hace con la palabra clave FROM.

En el ejemplo anterior, solicitamos información sobre varias obras de arte, que (como era de esperar) se almacena en la tabla artworks tabla.

Ahora, vamos a obtener información básica sobre los artistas que aparecen en nuestro museo. Para ello, solicitaremos los nombres de los artistas, los años de nacimiento y los años de fallecimiento de la tabla artists tabla:

SELECT name, year_birth, year_death
FROM artists;

Aquí está la salida de esta consulta SQL:

nameyear_birthyear_death
Paolo Veronese15281588
Leonardo da Vinci14521519
Johannes Vermeer16321675
Jean-Jacques Caffieri17251792

JOIN

En muchos casos, tendrá que unir los datos de varias tablas para obtener el resultado deseado. La sentencia JOIN le permite obtener información de dos o más tablas en una consulta SQL.

Por ejemplo, digamos que queremos ver los nombres de los artistas junto con sus obras. Esta información no está disponible en una tabla: tiene el nombre de la obra de arte en la artworks mientras que el nombre del artista se almacena en la tabla artists tabla. Sin embargo, puedes unir fácilmente estas dos informaciones utilizando el número de identificación del artista, que se almacena en ambas tablas:

SELECT artworks.title, artists.name
FROM artworks
JOIN artists
ON artworks.artist_id = artists.id;

Especificamos una tabla en la sentencia FROM y otra tabla en la sentencia JOIN. También utilizamos la palabra clave ON para indicar a la base de datos qué valores de columna deben coincidir para unir las tablas.

Este es el resultado:

titlename
The Mona LisaLeonardo da Vinci
Jean-Baptiste Poquelin (Moliere)Jean-Jacques Caffieri
The Wedding Feast at CanaPaolo Veronese
The LacemakerJohannes Vermeer
A RiverJean-Jacques Caffieri

Para entender los diferentes tipos de uniones disponibles en SQL, consulte esta guía introductoria. Además, asegúrate de consultar nuestras 10 mejores preguntas para entrevistas sobre uniones SQL. Son ideales para practicar (incluso si no te estás preparando para una entrevista de trabajo).

WHERE

La cláusula WHERE se utiliza para filtrar la salida de una consulta. Por ejemplo, digamos que tu próxima tarea es listar los títulos de las pinturas disponibles en el museo y su año de creación. No quiere información sobre esculturas y otros tipos de obras de arte en el conjunto de resultados.

Esta es la consulta SQL que debe utilizar:

SELECT title, year
FROM artworks
WHERE type = ‘painting’;

Con la sentencia WHERE, simplemente se especifica que el tipo de obra de arte debe ser "pintura". Así, se obtiene este resultado:

titleyear
The Mona Lisa1506
The Wedding Feast at Cana1563
The Lacemaker1670

Para más detalles sobre la cláusula WHERE, consulte este artículo.

ORDENAR POR

A menudo se desea que el resultado de la consulta se muestre en un orden específico. En SQL, puede ordenar el conjunto de resultados con la cláusula ORDER BY.

Por ejemplo, vamos a ordenar el resultado de la última consulta SQL por el año de creación, empezando por las obras más recientes. Para ello, simplemente especificamos la columna del año en la cláusula ORDER BY y añadimos la palabra clave DESC para poner los resultados en orden descendente:

SELECT title, year
FROM artworks
WHERE type = ‘painting’
ORDER BY year DESC;
titleyear
The Lacemaker1670
The Wedding Feast at Cana1563
The Mona Lisa1506

Obtenga más información sobre cómo ordenar las filas por una o más columnas en este artículo de introducción. Para casos de uso más avanzados de ORDER BY, consulte esta guía en profundidad sobre la sentencia ORDER BY.

GROUP BY

Por defecto, todos los resultados que obtenemos están orientados a registros. Sin embargo, en algunos casos podemos querer calcular métricas para grupos de registros (por ejemplo, el número de cuadros de cada artista, la obra maestra más antigua para cada tipo de obra, etc.). Aquí es donde entra en juego la cláusula GROUP BY.

Con GROUP BY, puede crear grupos de registros (filas) y calcular métricas en cada grupo. Por ejemplo, veamos el año de creación de la obra maestra más antigua de cada tipo de obra:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type;

Aquí, calculamos el año más antiguo (mínimo) para cada tipo de obra de arte. Obtenemos el siguiente resultado:

typeoldest_work_from
painting1506
sculpture1759

Aprenda más sobre la sintaxis de GROUP BY en este artículo. También, obtenga más ejemplos con GROUP BY aquí.

HAVING

Al igual que la cláusula WHERE, HAVING filtra la salida de una consulta. Sin embargo, WHERE filtra a nivel de registro, mientras que HAVING filtra a nivel de grupo. Lea más sobre la diferencia entre HAVING y WHERE aquí.

Supongamos que queremos obtener los tipos de obras de arte en los que la obra más antigua es anterior a 1600. Como esta es la condición para un valor agregado, la ponemos en la cláusula HAVING:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type
HAVING MIN (year) < 1600;

En nuestro caso, sólo la pintura satisface esta condición:

typeoldest_work_from
painting1506

Obtenga más detalles sobre cuándo y cómo utilizar HAVING en esta guía.

Sintaxis de consulta SQL: Resumamos

Como hemos revisado los elementos básicos de una consulta SQL, probablemente puedas ver que dónde y cómo usar estos elementos es generalmente sencillo. Sin embargo, hay muchos detalles que no se han cubierto en este resumen. Para ayudarte a repasar tus conocimientos de sintaxis SQL, hemos preparado una hoja de trucos de dos páginas SQL para principiantes. No dudes en descargarla, imprimirla y pegarla en tu escritorio.

Ahora, vamos a intentar utilizar todos los elementos básicos en una consulta SQL. Vamos a obtener los nombres de los artistas junto con el año de su obra más antigua que tenemos en el museo. También queremos (1) excluir la Mona Lisa, ya que es demasiado famosa; (2) incluir sólo a los artistas cuya obra más antigua haya sido creada antes de 1700, y (3) ordenar la salida por el año de la obra más antigua, empezando por la más antigua.

Esta es la consulta que hay que utilizar:

consulta

El resultado de esta consulta es:

nameoldest_work_from
Paolo Veronese1563
Johannes Vermeer1670

¿Ha podido seguir la lógica de esta consulta SQL? Si no te sientes seguro de utilizar los diferentes elementos de la consulta, asegúrate de consultar nuestro SQL para principiantes curso. En 129 ejercicios interactivos, cubre las aplicaciones fundamentales de SQL, incluyendo la construcción de informes básicos, el trabajo con múltiples tablas, la creación de informes con funciones agregadas y la escritura de subconsultas e instrucciones complejas.

¿Quiere practicar aún más? LearnSQL.es ha desarrollado un Ejercicios prácticos de SQL con 88 ejercicios interactivos para poner a prueba tus conocimientos básicos de SQL.

Gracias por leer, y ¡feliz aprendizaje!