SQL – Nivel 3 – Test 2

SQL – Nivel 3 – Test 2

Test-2 SQL Nivel 3

¿Qué es una clave candidata en una base de datos relacional?

Considera la siguiente consulta:


SELECT nombre, salario,
         NTILE(4) OVER (ORDER BY salario DESC) AS cuartil
FROM empleados;

¿Qué hace esta consulta?

Dada la siguiente consulta:


SELECT *
FROM empleados e1
WHERE salario > (
       SELECT AVG(salario)
       FROM empleados e2
       WHERE e2.departamento = e1.departamento
);

¿Qué hace esta consulta?

¿Cuál es la diferencia entre INNER JOIN y LEFT JOIN?

¿Cuál es el propósito de la cláusula WITH ROLLUP en una consulta GROUP BY?

¿Qué hace la cláusula MERGE en una consulta SQL?

¿Qué hace la función LEAD en SQL?

¿Qué es un índice de árbol B (B-tree index) en bases de datos?

¿Qué es una vista materializada en SQL?

¿Qué hace la función RANK() en una consulta con funciones de ventana?

Tests similares

Respuestas:


1. ¿Qué hace la función RANK() en una consulta con funciones de ventana?

Respuesta: Asigna un rango único a cada fila en la partición

Explicación:
La función RANK() ordena las filas dentro de una partición y asigna un rango. Si hay empates, el siguiente rango salta el número correspondiente.

Ejemplo:

SELECT nombre, salario, 

       RANK() OVER (ORDER BY salario DESC) AS rango 

FROM empleados;

Si dos empleados tienen el mismo salario, ambos reciben el mismo rango, y el siguiente número se salta.


2. ¿Qué hace la cláusula MERGE en una consulta SQL?

Respuesta: Fusiona datos de una tabla origen en una tabla destino

Explicación:
MERGE combina operaciones como INSERT, UPDATE y DELETE dependiendo de si las filas coinciden entre la tabla origen y la tabla destino.

Ejemplo:

MERGE INTO tabla_destino AS destino 

USING tabla_origen AS origen 

ON destino.id = origen.id 

WHEN MATCHED THEN 

    UPDATE SET valor = origen.valor 

WHEN NOT MATCHED THEN 

    INSERT (id, valor) VALUES (origen.id, origen.valor);


3. ¿Qué es un índice de árbol B (B-tree index) en bases de datos?

Respuesta: Una estructura de datos que mejora la velocidad de recuperación de datos

Explicación:
Un índice de tipo B-tree organiza los datos de forma jerárquica, lo que permite búsquedas rápidas y eficientes para operaciones como SELECT, WHERE, y ORDER BY.


4. Considera la consulta:

SELECT nombre, salario, 

         NTILE(4) OVER (ORDER BY salario DESC) AS cuartil 

FROM empleados;

Respuesta: Divide a los empleados en 4 grupos basados en su salario

Explicación:
La función NTILE(n) distribuye las filas en n grupos (o cuartiles, deciles, etc.) con cantidades iguales o casi iguales.


5. ¿Qué hace la función LEAD en SQL?

Respuesta: Accede a datos de una fila posterior en la misma tabla

Explicación:
LEAD permite acceder a valores de filas posteriores sin necesidad de un JOIN.

Ejemplo:

SELECT nombre, salario, 

       LEAD(salario) OVER (ORDER BY salario DESC) AS siguiente_salario 

FROM empleados;


6. ¿Cuál es la diferencia entre INNER JOIN y LEFT JOIN?

Respuesta: INNER JOIN requiere que las columnas de unión coincidan, LEFT JOIN no

Explicación:

  • INNER JOIN: Devuelve solo filas donde hay coincidencia en ambas tablas.
  • LEFT JOIN: Devuelve todas las filas de la tabla izquierda y las coincidencias de la derecha (rellenando con NULL si no hay coincidencias).

7. ¿Qué es una vista materializada en SQL?

Respuesta: Una tabla física que almacena los resultados de una consulta

Explicación:
A diferencia de una vista normal, una vista materializada almacena físicamente los datos para mejorar el rendimiento en consultas complejas.

Ejemplo:

CREATE MATERIALIZED VIEW vista_ventas AS 

SELECT departamento, SUM(ventas) AS total_ventas 

FROM ventas 

GROUP BY departamento;


8. Dada la consulta:

SELECT * 

FROM empleados e1 

WHERE salario > ( 

       SELECT AVG(salario) 

       FROM empleados e2 

       WHERE e2.departamento = e1.departamento 

);

Respuesta: Lista empleados con salario superior al promedio de su departamento

Explicación:
La subconsulta calcula el salario promedio para cada departamento, y luego la consulta principal selecciona a los empleados que ganan más que ese promedio.


9. ¿Cuál es el propósito de la cláusula WITH ROLLUP en una consulta GROUP BY?

Respuesta: Producir subtotales y totales generales en los resultados agrupados

Explicación:
WITH ROLLUP genera resultados jerárquicos con subtotales por grupo y un total general.

Ejemplo:

SELECT departamento, SUM(salario) AS total_salarios 

FROM empleados 

GROUP BY departamento WITH ROLLUP;


10. ¿Qué es una clave candidata en una base de datos relacional?

Respuesta: Una clave que podría ser utilizada como clave primaria

Explicación:
Una clave candidata es un conjunto mínimo de columnas que puede identificar de manera única una fila en una tabla. De estas, se elige la clave primaria.

Deja un comentario