
2.2 Consultas Básicas
Las consultas en MySQL permiten interactuar con los datos almacenados en las tablas. A través de ellas, puedes extraer información específica, manipular datos y presentarlos en un formato que sea útil para el análisis o la toma de decisiones.
2.2.1 Selección de Datos: SELECT
El comando `SELECT` es el más utilizado en SQL, ya que permite recuperar datos de una o más tablas. La sintaxis básica es:
SELECT columnas FROM tabla WHERE condiciones;
Ejemplos:
1. Seleccionar todas las columnas de una tabla:
SELECT * FROM empleados;
Esto selecciona y muestra todas las columnas de todos los registros en la tabla `empleados`.
2. Seleccionar columnas específicas:
SELECT nombre, puesto FROM empleados;
Aquí se seleccionan solo las columnas `nombre` y `puesto` de la tabla `empleados`.
3. Renombrar columnas en la salida:
SELECT nombre AS 'Nombre del Empleado', puesto AS 'Cargo' FROM empleados;
Esto cambia los nombres de las columnas en la salida de la consulta.
2.2.2 Filtrado de Datos: WHERE, Operadores de Comparación
La cláusula `WHERE` se usa para filtrar los resultados de una consulta según una condición específica. Esto permite obtener solo los registros que cumplen ciertos criterios.
Ejemplos:
1. Filtrar registros según una condición:
SELECT * FROM empleados WHERE salario > 3000;
Esto selecciona todos los empleados que tienen un salario superior a 3000.
2. Usar operadores de comparación:
- `=`: Igual a
- `<>` o `!=`: Diferente de
- `>`: Mayor que
- `<`: Menor que
- `>=`: Mayor o igual que
- `<=`: Menor o igual que
SELECT * FROM empleados WHERE puesto = 'Ingeniero';
3. Filtrar con múltiples condiciones (AND, OR):
- `AND`: Ambas condiciones deben ser verdaderas.
- `OR`: Al menos una de las condiciones debe ser verdadera.
SELECT * FROM empleados WHERE puesto = 'Ingeniero' AND salario > 4000;
Esto selecciona empleados que sean ingenieros y tengan un salario superior a 4000.
SELECT * FROM empleados WHERE puesto = 'Ingeniero' OR salario > 4000;
Esto selecciona empleados que sean ingenieros o que tengan un salario superior a 4000.
4. Filtrado por un rango de valores (BETWEEN):
SELECT * FROM empleados WHERE salario BETWEEN 3000 AND 5000;
Esto selecciona empleados cuyo salario esté entre 3000 y 5000, inclusive.
5. Filtrado por lista de valores (IN)
SELECT * FROM empleados WHERE puesto IN ('Ingeniero', 'Administrador');
Esto selecciona empleados cuyo puesto sea `Ingeniero` o `Administrador`.
6. Filtrado con valores nulos (IS NULL, IS NOT NULL):
SELECT * FROM empleados WHERE fecha_contratacion IS NULL;
Esto selecciona empleados que no tienen una fecha de contratación registrada.
2.2.3 Ordenación de Resultados: ORDER BY
La cláusula `ORDER BY` se utiliza para ordenar los resultados de una consulta en orden ascendente (por defecto) o descendente.
Ejemplos:
1. Ordenar en orden ascendente:
SELECT nombre, salario FROM empleados ORDER BY salario;
Esto ordena los empleados de menor a mayor salario.
2. Ordenar en orden descendente:
SELECT nombre, salario FROM empleados ORDER BY salario DESC;
Esto ordena los empleados de mayor a menor salario.
3. Ordenar por múltiples columnas:
SELECT nombre, puesto, salario FROM empleados ORDER BY puesto ASC, salario DESC;
Esto ordena primero por `puesto` en orden ascendente, y luego por `salario` en orden descendente dentro de cada grupo de puestos.
2.2.4 Agrupación de Resultados: GROUP BY, HAVING
La cláusula `GROUP BY` se utiliza para agrupar filas que tienen valores iguales en columnas específicas. Es común usarla junto con funciones de agregación como `COUNT`, `SUM`, `AVG`, `MAX`, y `MIN`.
Ejemplos:
1. Agrupar por una columna:
SELECT puesto, COUNT(*) AS total_empleados
FROM empleados
GROUP BY puesto;
Esto cuenta cuántos empleados hay en cada puesto.
2. Usar funciones de agregación con GROUP BY:
SELECT puesto, AVG(salario) AS salario_promedio
FROM empleados
GROUP BY puesto;
Esto calcula el salario promedio para cada puesto.
3. Filtrar grupos con HAVING:
La cláusula `HAVING` se usa para filtrar los resultados después de aplicar `GROUP BY`. Es similar a `WHERE`, pero se usa después de la agrupación.
SELECT puesto, COUNT(*) AS total_empleados
FROM empleados
GROUP BY puesto
HAVING total_empleados > 1;
Esto selecciona solo los puestos que tienen más de un empleado.
2.2.5 Funciones de Agregación: COUNT, SUM, AVG, MAX, MIN
Las funciones de agregación permiten realizar cálculos sobre un conjunto de valores y devolver un único valor.
Ejemplos:
1. Contar registros:
SELECT COUNT(*) AS total_empleados FROM empleados;
Esto cuenta el número total de empleados.
2. Sumar valores:
SELECT SUM(salario) AS salario_total FROM empleados;
Esto suma todos los salarios de los empleados.
3. Calcular promedio:
SELECT AVG(salario) AS salario_promedio FROM empleados;
Esto calcula el salario promedio de todos los empleados.
4. Encontrar el valor máximo:
SELECT MAX(salario) AS salario_maximo FROM empleados;
Esto encuentra el salario más alto entre los empleados.
5. Encontrar el valor mínimo:
SELECT MIN(salario) AS salario_minimo FROM empleados;
Esto encuentra el salario más bajo entre los empleados.
Ejemplo Combinado:
Imagina que tienes una tabla `ventas` con las siguientes columnas: `id_venta`, `fecha`, `id_producto`, `cantidad`, `precio_total`. Aquí hay algunas consultas que podrías realizar:
1. Seleccionar todas las ventas realizadas en agosto de 2024*
SELECT * FROM ventas WHERE fecha BETWEEN '2024-08-01' AND '2024-08-31';
2. Contar el número total de ventas:
SELECT COUNT(*) AS total_ventas FROM ventas;
3. Obtener el ingreso total por ventas en 2024:
SELECT SUM(precio_total) AS ingreso_total
FROM ventas
WHERE YEAR(fecha) = 2024;
4. Agrupar las ventas por mes y calcular el ingreso total por mes:
SELECT MONTH(fecha) AS mes, SUM(precio_total) AS ingreso_mensual
FROM ventas
GROUP BY MONTH(fecha);
5. Filtrar los meses con ingresos superiores a 10,000:
SELECT MONTH(fecha) AS mes, SUM(precio_total) AS ingreso_mensual
FROM ventas
GROUP BY MONTH(fecha)
HAVING ingreso_mensual > 10000;
Resumen
El punto 2.2 Consultas Básicas cubre las operaciones fundamentales que realizarás en MySQL para interactuar con los datos almacenados en tus tablas. Aprenderás a seleccionar y filtrar datos, ordenar los resultados según tus necesidades, agrupar datos para obtener resúmenes significativos, y utilizar funciones de agregación para realizar cálculos como conteos, sumas y promedios. Estos conceptos son esenciales para realizar consultas efectivas en una base de datos MySQL.
No hay comentarios