SQL – Nivel 2 – Test 1
Tests similares
Respuestas:
1. ¿Qué hace la cláusula HAVING en SQL?
Respuesta: Filtra grupos después de agrupar
Explicación:
La cláusula HAVING se utiliza para filtrar grupos creados por GROUP BY. Se aplica después del agrupamiento, mientras que WHERE filtra las filas antes del agrupamiento. Ejemplo:
SELECT departamento, COUNT(*)
FROM empleados
GROUP BY departamento
HAVING COUNT(*) > 5;
2. ¿Cuál es la diferencia entre DELETE y TRUNCATE en SQL?
Respuesta: DELETE elimina filas específicas, TRUNCATE elimina todas las filas
Explicación:
- DELETE: Permite eliminar filas específicas utilizando una cláusula WHERE.
- TRUNCATE: Elimina todas las filas de una tabla de forma rápida, pero no permite filtros.
Ejemplo:
DELETE FROM empleados WHERE id = 1;
TRUNCATE TABLE empleados;
3. Dada la consulta: SELECT nombre, salario FROM empleados WHERE salario > (SELECT AVG(salario) FROM empleados); ¿Qué hace esta consulta?
Respuesta: Selecciona empleados con salario mayor que el promedio
Explicación:
La consulta anidada (SELECT AVG(salario) FROM empleados) calcula el salario promedio. Luego, el WHERE filtra los empleados cuyo salario sea mayor que ese promedio.
4. ¿Qué tipo de JOIN devuelve todas las filas de ambas tablas, incluso si no hay coincidencias?
Respuesta: FULL OUTER JOIN
Explicación:
Un FULL OUTER JOIN devuelve todas las filas de ambas tablas. Si no hay coincidencia, las columnas faltantes contienen NULL.
Ejemplo:
SELECT a.nombre, b.departamento
FROM tabla_a a
FULL OUTER JOIN tabla_b b ON a.id = b.id;
5. ¿Qué es una clave foránea (foreign key) en SQL?
Respuesta: Una clave que se refiere a la clave primaria de otra tabla
Explicación:
Una clave foránea establece una relación entre dos tablas al referenciar la clave primaria de otra tabla. Esto asegura la integridad referencial.
Ejemplo:
CREATE TABLE pedidos (
id INT PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
6. ¿Cuál es el propósito de un índice en una base de datos SQL?
Respuesta: Acelerar la recuperación de datos
Explicación:
Un índice mejora la velocidad de las consultas al permitir búsquedas rápidas en columnas indexadas. Sin embargo, puede ralentizar las operaciones de inserción, actualización o eliminación.
Ejemplo:
CREATE INDEX idx_nombre ON empleados(nombre);
7. ¿Qué hace la función COALESCE en SQL?
Respuesta: Devuelve el primer valor no nulo de la lista
Explicación:
COALESCE toma varios argumentos y devuelve el primero que no sea NULL. Es útil para manejar valores predeterminados.
Ejemplo:
SELECT COALESCE(direccion, ‘Dirección desconocida’) AS direccion_final
FROM empleados;
8. Considera la consulta: SELECT departamento, COUNT(*) as num_empleados FROM empleados GROUP BY departamento HAVING COUNT(*) > 5; ¿Qué hace esta consulta?
Respuesta: Lista departamentos con más de 5 empleados
Explicación:
Esta consulta agrupa los empleados por departamento, cuenta cuántos empleados hay en cada uno y filtra los departamentos con más de 5 empleados mediante HAVING.
9. ¿Qué hace la cláusula UNION ALL en SQL?
Respuesta: Combina los resultados de dos o más consultas, incluyendo duplicados
Explicación:
UNION ALL combina los resultados de varias consultas y conserva los duplicados. A diferencia de UNION, no elimina filas repetidas.
Ejemplo:
SELECT nombre FROM empleados
UNION ALL
SELECT nombre FROM clientes;
10. ¿Cuál sería la consulta correcta para obtener el salario promedio por departamento?
Respuesta: SELECT departamento, AVG(salario) FROM empleados GROUP BY departamento;
Explicación:
Para calcular el salario promedio por departamento, primero agrupamos los datos por departamento utilizando GROUP BY y luego aplicamos la función AVG() a la columna salario.