0% encontró este documento útil (0 votos)
24 vistas3 páginas

Consultas SQL

Cargado por

qnosabria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas3 páginas

Consultas SQL

Cargado por

qnosabria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CONSULTAS SQL

1. CONSULTAS SENCILLAS (BÁSICAS)


Estas son las consultas más elementales para seleccionar datos.
➢ SELECT Básico
Selecciona todas las columnas de una tabla: SELECT * FROM empleados;
• Explicación: Muestra todos los registros y columnas de la tabla empleados.
➢ SELECT con Columnas Específicas
Selecciona solo ciertas columnas: SELECT nombre, apellido FROM empleados;
• Explicación: Muestra solo las columnas nombre y apellido.
➢ SELECT con Alias (AS)
Renombra columnas en el resultado: SELECT nombre AS "Nombre del Empleado", salario AS "Sueldo" FROM
empleados;
• Explicación: Usa AS para dar alias a las columnas.
➢ SELECT con DISTINCT
Elimina duplicados: SELECT DISTINCT departamento FROM empleados;
• Explicación: Muestra valores únicos de departamento.

2. CONSULTAS INTERMEDIAS
Incluyen filtros, ordenamiento y límites: SELECT con WHERE (Filtro) Filtra registros basados en condiciones.
SELECT * FROM empleados WHERE salario > 50000;
• Explicación: Muestra empleados con salario mayor a 50,000. Operadores: =, >, <, >=, <=, !=, LIKE
(para patrones), IN (lista de valores), BETWEEN (rango).
- Ejemplo con LIKE:
SELECT * FROM empleados WHERE nombre LIKE 'J%’; -- Nombres que empiezan con J
- SELECT con ORDER BY (Ordenar)
Ordena los resultados: SELECT * FROM empleados ORDER BY salario DESC;
• Explicación: Ordena por salario descendente (DESC). Usa ASC para ascendente (predeterminado).
- SELECT con LIMIT (Límite de Registros)
Limita el número de resultados (común en MySQL/PostgreSQL; en SQL Server usa TOP).
SELECT * FROM empleados ORDER BY salario DESC LIMIT 5;
• Explicación: Muestra los 5 empleados con salarios más altos.

- SELECT con OFFSET (Paginación)


Salta registros (combinado con LIMIT):
SELECT * FROM empleados ORDER BY id LIMIT 10 OFFSET 20;
• Explicación: Muestra 10 registros empezando desde el 21º.
3. Consultas con Agregados y Agrupamiento
Para cálculos y resúmenes: Funciones de Agregado
Usa funciones como COUNT, SUM, AVG, MIN, MAX.
SELECT COUNT(*) AS total_empleados FROM empleados;
• Explicación: Cuenta el total de empleados.

- Ejemplo combinado:
CONSULTAS SQL
SELECT AVG(salario) AS salario_promedio FROM empleados WHERE departamento = 'Ventas';

- GROUP BY (Agrupar)
Agrupa resultados por una columna.
SELECT departamento, COUNT(*) AS num_empleados FROM empleados GROUP BY departamento;
• Explicación: Cuenta empleados por departamento.

- HAVING (Filtro en Grupos)


Filtra grupos después de GROUP BY (similar a WHERE, pero para agregados).
SELECT departamento, AVG(salario) AS avg_salario FROM empleados GROUP BY departamento HAVING
AVG(salario) > 60000;
• Explicación: Muestra departamentos con salario promedio > 60,000.
4. CONSULTAS CON JOINS (UNIONES)
Combina datos de múltiples tablas. Supongamos otra tabla departamentos con id y nombre.
- INNER JOIN
Une solo registros coincidentes.
SELECT e.nombre, d.nombre AS dept_nombre
FROM empleados e INNER JOIN departamentos d ON e.departamento = d.id;
- LEFT JOIN (o LEFT OUTER JOIN)
Incluye todos los registros de la tabla izquierda, incluso si no hay coincidencia.
SELECT e.nombre, d.nombre AS dept_nombre FROM empleados e LEFT JOIN departamentos d ON
e.departamento = d.id;

- RIGHT JOIN y FULL OUTER JOIN


Similar, pero para la tabla derecha o ambas.
SELECT e.nombre, d.nombre FROM empleados e RIGHT JOIN departamentos d ON e.departamento = d.id;

- CROSS JOIN
Producto cartesiano (todas las combinaciones).
SELECT * FROM empleados CROSS JOIN departamentos;
5. CONSULTAS AVANZADAS
Incluyen subconsultas, expresiones comunes y funciones de ventana.

- Subconsultas (Subqueries)
Consulta dentro de otra.
SELECT nombre FROM empleados WHERE salario > (SELECT AVG(salario) FROM empleados);
• Explicación: Empleados con salario por encima del promedio.
Subconsulta en FROM:
SELECT * FROM (SELECT * FROM empleados WHERE salario > 50000) AS empleados_altos;

- Common Table Expressions (CTEs)


Define una subconsulta temporal con WITH.
WITH altos_salarios AS (SELECT * FROM empleados WHERE salario > 50000)
SELECT * FROM altos_salarios ORDER BY salario DESC;
• Explicación: Útil para consultas complejas y legibles.
CONSULTAS SQL
- Funciones de Ventana (Window Functions)
Realiza cálculos sobre un conjunto de filas relacionadas (como ROW_NUMBER, RANK).
SELECT nombre, salario, RANK() OVER (ORDER BY salario DESC) AS ranking FROM empleados;
• Explicación: Asigna un ranking basado en salario. Usa PARTITION BY para agrupar:
SELECT nombre, departamento, salario, ROW_NUMBER() OVER (PARTITION BY departamento ORDER BY
salario DESC) AS row_num FROM empleados;

- CASE (Condicional)
Expresión condicional dentro de SELECT.
SELECT nombre, salario,
CASE
WHEN salario > 100000 THEN 'Alto'
WHEN salario > 50000 THEN 'Medio'
ELSE 'Bajo'
END AS categoria_salario
FROM empleados;

- UNION, INTERSECT y EXCEPT


Combina resultados de múltiples SELECT.
SELECT nombre FROM empleados WHERE departamento = 'Ventas'

- UNION
SELECT nombre FROM empleados WHERE departamento = 'Marketing';
• UNION: Une y elimina duplicados.
• UNION ALL: Une sin eliminar duplicados.
• INTERSECT: Solo lo común.
• EXCEPT (o MINUS): Diferencia.

También podría gustarte