21st Jul 2022 Lectura de 7 minutos Enumerar y explicar todos los elementos básicos de una consulta SQL Kateryna Koidan SQL aprender SQL sql query Índice Elementos Básicos de una Consulta SQL SELECT FROM JOIN WHERE ORDENAR POR GROUP BY HAVING Sintaxis de consulta SQL: Resumamos "¿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: 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! Tags: SQL aprender SQL sql query