Skip to content

Clase 9 – SELECT en SQL: Explorando Datos con Precisión

El comando SELECT en SQL es la piedra angular de la recuperación de datos de una base de datos.

Su versatilidad y capacidad para filtrar y ordenar datos hacen que sea esencial para cualquier persona que trabaje con bases de datos.

En esta extensa guía, exploraremos en detalle el comando SELECT, desde su sintaxis básica hasta casos avanzados con múltiples tablas.

Sintaxis Básica del Comando SELECT

La sintaxis básica del comando SELECT es sencilla pero poderosa.

Nos permite recuperar datos de una o varias columnas en una tabla.

A continuación, se muestra la estructura básica:

SELECT columna1, columna2, ...
FROM nombre_de_tabla;

Donde:

  • columna1, columna2, … son los nombres de las columnas que deseas recuperar.
  • nombre_de_tabla es el nombre de la tabla de la que deseas recuperar datos.

Ejemplo de Comando SELECT Básico

Supongamos que tenemos una tabla llamada Empleados con las columnas ID_empleado, Nombre, Puesto y Salario.

Si queremos recuperar los nombres y puestos de todos los empleados, la consulta sería:

SELECT Nombre, Puesto
FROM Empleados;

Esta consulta devolverá los nombres y puestos de todos los empleados en la tabla Empleados.

Filtrando Resultados con la Cláusula WHERE

El poder del comando SELECT se multiplica cuando utilizamos la cláusula WHERE para filtrar los resultados basándonos en condiciones específicas.

Por ejemplo, si solo queremos empleados con un salario superior a 50,000 dólares:

SELECT Nombre, Puesto
FROM Empleados
WHERE Salario > 50000;

Esta consulta nos proporcionará los nombres y puestos de los empleados con un salario superior a 50,000 dólares.

Uso de Operadores Lógicos en la Cláusula WHERE

Podemos combinar condiciones utilizando operadores lógicos como AND, OR y NOT.

Por ejemplo, si queremos empleados con un salario superior a 50,000 dólares que también sean gerentes:

SELECT Nombre, Puesto
FROM Empleados
WHERE Salario > 50000 AND Puesto = 'Gerente';

Esta consulta nos dará los nombres y puestos de los gerentes con un salario superior a 50,000 dólares.

Ordenando Resultados con la Cláusula ORDER BY

La cláusula ORDER BY nos permite ordenar los resultados según una o más columnas, ya sea en orden ascendente (ASC) o descendente (DESC).

Por ejemplo, si queremos ordenar los empleados por salario de forma descendente:

SELECT Nombre, Puesto, Salario
FROM Empleados
ORDER BY Salario DESC;

Esta consulta nos devolverá los nombres, puestos y salarios de los empleados ordenados de mayor a menor salario.

Limitando Resultados con la Cláusula LIMIT

Para evitar obtener un conjunto masivo de resultados, podemos utilizar la cláusula LIMIT para limitar la cantidad de filas devueltas.

Supongamos que solo queremos los dos empleados con los salarios más altos:

SELECT Nombre, Puesto, Salario
FROM Empleados
ORDER BY Salario DESC
LIMIT 2;

Esta consulta nos proporcionará los nombres, puestos y salarios de los dos empleados con los salarios más altos.

Utilizando Funciones Agregadas

El comando SELECT también nos permite utilizar funciones agregadas como COUNT, SUM, AVG, MIN y MAX para realizar cálculos en las columnas seleccionadas.

Por ejemplo, si queremos saber cuántos empleados hay en total:

SELECT COUNT(*)
FROM Empleados;

Esta consulta devolverá el número total de empleados en la tabla Empleados.

Trabajando con Datos de Múltiples Tablas: JOIN

En situaciones más complejas, es posible que necesitemos recuperar datos de múltiples tablas.

Aquí es donde entra en juego la cláusula JOIN. Supongamos que tenemos una tabla Departamentos y queremos recuperar los nombres de los empleados y sus departamentos:

SELECT Empleados.Nombre, Empleados.Puesto, Departamentos.Nombre AS Departamento
FROM Empleados
JOIN Departamentos ON Empleados.ID_departamento = Departamentos.ID_departamento;

Esta consulta utiliza la cláusula JOIN para combinar datos de las tablas Empleados y Departamentos basándose en la igualdad de ID de departamento.

Agrupando Resultados con la Cláusula GROUP BY

La cláusula GROUP BY nos permite agrupar resultados basándonos en los valores de una o más columnas.

Supongamos que queremos saber cuántos empleados hay en cada departamento:

SELECT Departamentos.Nombre AS Departamento, COUNT(*) AS Cantidad_Empleados
FROM Empleados
JOIN Departamentos ON Empleados.ID_departamento = Departamentos.ID_departamento
GROUP BY Departamentos.Nombre;

Esta consulta agrupa los resultados por departamento y cuenta la cantidad de empleados en cada uno.

Filtrando Resultados de Grupos con la Cláusula HAVING

La cláusula HAVING se utiliza en conjunto con GROUP BY para filtrar los resultados de grupos basándonos en condiciones específicas.

Supongamos que solo queremos departamentos con más de 5 empleados:

SELECT Departamentos.Nombre AS Departamento, COUNT(*) AS Cantidad_Empleados
FROM Empleados
JOIN Departamentos ON Empleados.ID_departamento = Departamentos.ID_departamento
GROUP BY Departamentos.Nombre
HAVING COUNT(*) > 5;

Esta consulta nos proporcionará departamentos con más de 5 empleados.

El comando SELECT en SQL es una herramienta poderosa y versátil que nos permite explorar y analizar datos con precisión.

Desde consultas básicas hasta situaciones más complejas con múltiples tablas y funciones agregadas, el comando SELECT es esencial para cualquier profesional de bases de datos.

Al comprender y dominar estas técnicas, estarás preparado para enfrentar una variedad de escenarios en el mundo de las bases de datos.