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

¿Qué es una consulta SQL?

Una consulta SQL es el comando más básico del lenguaje SQL. Es una pregunta que se le formula a una base de datos. En este artículo, nos adentraremos en los conceptos básicos de las consultas SQL para que inicies tu camino en este lenguaje con un aprendizaje rápido y práctico.

SQL (Structured Query Language o "Lenguaje de consulta estructurada") es un lenguaje de programación diseñado para interactuar con bases de datos. Cuando se desea acceder a los datos de una base de datos, ya sea para modificarlos, borrarlos, añadirlos o simplemente extraer información, se utiliza SQL.

SQL puede trabajar e interactuar con grandes cantidades de datos. Su sintaxis es clara y sencilla. Si quieres saber más sobre SQL, su historia y sus fundamentos, lee nuestro artículo "¿Qué es SQL?".

Para quienes quieran aprender SQL practicando, recomendamos nuestro curso SQL para principiantes que puedes comenzar apenas termines de leer este artículo. Este curso totalmente interactivo contiene los fundamentos esenciales de SQL ¡e incluye 129 ejercicios!

Consulta SQL: Una pregunta a la base de batos

Una consulta SQL es un comando que se utiliza para obtener datos de una base de datos. Es un instrumento flexible para acceder a los datos necesarios.

Una consulta SQL es esencialmente una pregunta que una persona usuaria formula a una base de datos. Las preguntas pueden variar en complejidad, desde "¿qué modelos de coche se venden?" hasta "¿qué promedio de coches Volvo se venden al año a la empresa del señor Smith?".

En este artículo, veremos algunos ejemplos sencillos de consultas SQL, es decir, preguntas simples que se pueden hacer a una base de datos. Antes de entrar en tema, nuestra guía de términos SQL para principiantes resulta de mucha utilidad para entender algunas de las cuestiones de las que conversaremos.

Las tablas en las bases de datos SQL

Las bases de datos SQL almacenan la información en tablas. Cada tabla tiene un nombre que normalmente nos indica qué tipo de información almacena: una tabla llamada estudiantes probablemente almacene información sobre estudiantes, una tabla llamada curso ha de almacenar información sobre cursos, etc.

Cada tabla consta de columnas y filas. Las columnas forman la estructura de una tabla. Cada columna tiene un nombre que indica la información que almacena. También tiene un tipo de datos que nos dice si la información de la columna es texto, número, fecha y hora, etc. Las filas contienen los datos propiamente dichos, definidos por las columnas.

Veamos un ejemplo: la tabla estudiantes. Esta tabla contiene información sobre los estudiantes de una universidad. Tiene 5 columnas:

  • id: el identificador único del estudiante.
  • nombre: el nombre completo del estudiante.
  • departamento: el departamento de la universidad al que pertenece el estudiante.
  • puntuacion_promedio: la calificación promedio del estudiante (de 1 a 5).
  • periodo_en_curso: el año de estudio que cursa actuamente el estudiante.

Las columnas nombre y departamento almacenan valores de cadena (texto), las columnas id y periodo_en_curso contienen números enteros, y puntuacion_promedio es un número de coma flotante:

idnombredepartamentopuntuacion_promedioperiodo_en_curso
1Tracy CarpenterCiencias de la computación4.41
2Kornelia HoldingCiencias de la computación3.671
3Will ParkerGestión de TI4.053
4Daria HendersonGestión de TI4.74
5James MartinsHistoria universal2.84
6Kim YuMedios de comunicación3.963

Ejemplos de preguntas

Pensemos en algunos ejemplos de preguntas/consultas que podemos hacerle a esta tabla:

  • ¿Cuál es el nombre de quienes estudian en la universidad?
  • ¿Cuál es el nombre de quienes tienen una calificación promedio de al menos 4?
  • ¿Quiénes cursan el primer año de la carrera de Ciencias de la computación?
  • y así sucesivamente.

El número de consultas posibles con esta única tabla es prácticamente infinito. Todas ellas comparten una estructura común:

SELECT …
FROM estudiantes
…

Como puede verse, utilizamos el nombre de nuestra tabla (estudiantes) en una consulta con la palabra clave FROM.

¿Cómo se escribe una consulta SQL?

En este artículo, nos centraremos en las partes más básicas de cualquier consulta SQL: SELECT, FROM y WHERE. Obtengamos algunos datos de la tabla estudiantes utilizando estas palabras clave.

Consulta SQL - Ejemplo 1: Extraer toda la Información de una tabla (utilizando SELECT *)

SELECT *
FROM estudiantes;

Este es el tipo de consulta más básico. Selecciona todas las columnas (usando el símbolo * después de SELECT) y todas las filas (sin ningún filtro) de la tabla. En lenguaje natural, esta consulta solicita lo siguiente: "Dame toda la información de todos los alumnos".

Este es el resultado:

idnombredepartamentopuntuacion_promedioperiodo_en_curso
1Tracy CarpenterCiencias de la computación4.41
2Kornelia HoldingCiencias de la computación3.671
3Will ParkerGestión de TI4.053
4Daria HendersonGestión de TI4.74
5James MartinsHistoria universal2.84
6Kim YuMedios de comunicación3.963

Como ves, se trata de una tabla completa que ya hemos visto anteriormente. Veamos otro ejemplo.

Consulta SQL - Ejemplo 2: Extraer los nombres de estudiantes con sus departamentos y períodos actualmente en curso (seleccionando columnas específicas)

SELECT nombre, departamento, periodo_en_curso
FROM estudiantes;

Esta consulta es un poco más compleja. Selecciona todas las filas (de nuevo, sin filtro incluido) pero no todas las columnas: sólo nombre, departamento y periodo_en_curso. La consulta dice: "Dame los nombres de los estudiantes, sus departamentos y sus períodos en curso".

Este es el resultado:

nombredepartamentoperiodo_en_curso
Tracy CarpenterCiencias de la computación1
Kornelia HoldingCiencias de la computación1
Will ParkerGestión de TI3
Daria HendersonGestión de TI4
James MartinsHistoria universal4
Kim YuMedios de comunicación3

Es la misma tabla que antes, pero con menos columnas. Veamos un ejemplo aún más avanzado.

Consulta SQL - Ejemplo 3: Extraer los nombres de quienes estudian Gestión de TI (filtrar consultas utilizando WHERE)

SELECT nombre
FROM estudiantes
WHERE departamento = 'Gestión de TI';

Esta consulta no sólo selecciona una columna, nombre, sino que también añade un filtro para las filas. Sólo selecciona las filas cuyo valor departamento es igual a 'Gestión de TI'. Esta consulta dice: "Dame los nombres de quienes estudian en el departamento de Gestión de TI". Y aquí está el resultado:

nombre
Will Parker
Daria Henderson

Consulta SQL - Ejemplo 4: Extraer los identificadores (id) y los nombres de quienes cursan el cuarto año (período) de Gestión de TI (filtros múltiples en consultas utilizando AND)

Es común que se quiera incluir varias condiciones de filtro. No hay problema. Se pueden añadir tantas condiciones como se desee utilizando las palabras clave AND y OR. Si se tienen dos condiciones unidas con la palabra clave AND, la consulta busca filas que cumplan ambas condiciones. Si, en cambio, están unidas con OR, la consulta busca filas que cumplan cualquiera de las dos condiciones.

Veamos un ejemplo:

SELECT id, nombre
FROM estudiantes
WHERE departamento = 'Gestión de TI'
AND periodo_en_curso = 4;

La consulta pide: "Dame los id y los nombres de quienes estudian Gestión de TI y cursan actualmente el cuarto período". He aquí el resultado:

idnombre
4Daria Henderson

A continuación, un ejemplo de condiciones de filtro con OR.

Consulta SQL - Ejemplo 5: Extraer los nombres y los departamentos de quienes estudian Gestión de TI o Historia universal (filtros múltiples en consultas utilizando OR)

SELECT nombre, departamento
FROM estudiantes
WHERE departamento = 'Gestión de TI'
OR departamento = 'Historia universal';

Esta consulta solicita: "Dame los nombres y los departamentos de quienes estudian Gestión de TI o Historia Universal". Este es el resultado:

nombredepartamento
Will ParkerGestión de TI
Daria HendersonGestión de TI
James MartinsHistoria universal

Consulta SQL - Estructura general

En resumen, la estructura general de una consulta SQL es la siguiente:

SELECT …
FROM …
WHERE …
GROUP BY …
HAVING …
ORDER BY …;

De todas estas palabras clave, sólo dos son obligatorias: SELECT y FROM, que ya conoces. Repasemos ahora cada palabra clave:

  • SELECT va seguida de las columnas que se desean obtener de la tabla (por ejemplo, SELECT nombre, departamento, periodo_en_curso) o del símbolo * para seleccionar todas las columnas.
  • FROM va seguida del nombre de la tabla de la que desea obtener información.
  • WHERE va seguida de una o varias condiciones de filtrado de los datos (por ejemplo, WHERE periodo_en_curso = 1).
  • GROUP BY va seguida de una o más columnas por las que se desea agrupar los datos (por ejemplo, GROUP BY departmento agrupa los estudiantes por sus departamentos).
  • HAVING va seguida de una condición que filtra los grupos de datos. Esta palabra clave se utiliza siempre junto con GROUP BY.
  • ORDER BY va seguida de una o varias columnas por las que se desea ordenar los datos.

¡Aprende todo sobre las consultas SQL con nuestro curso "SQL para principiantes"!

¡Aprenderás mucho más que lo que hemos cubierto en este artículo, como agrupar datos con GROUP BY, ordenar resultados con ORDER BY, e incluso consultar múltiples tablas a la vez usando JOIN! Nuestro curso interactivo SQL para principiantes proporciona la teoría y la práctica de estos temas y mucho más, de forma divertida e interactiva. ¡Te invito a que lo pruebes!