SQL – Nivel 2 – Test 2

SQL – Nivel 2 – Test 2

Test-2 SQL Nivel 2

¿Qué es una vista (view) en SQL?

¿Qué hace la cláusula DISTINCT en SQL?

Dada la siguiente consulta:


SELECT cliente_id, AVG(total) as promedio_pedido
FROM pedidos
GROUP BY cliente_id
HAVING AVG(total) > 1000;

¿Qué hace esta consulta?

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

Considera la siguiente consulta:


UPDATE pedidos
SET total = total * 1.1
WHERE fecha BETWEEN '2023-01-01' AND '2023-12-31';

¿Qué hace esta consulta?

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

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

¿Qué es una subconsulta (subquery) en SQL?

¿Cuál es el propósito de la cláusula LIMIT en SQL?

Considera las siguientes tablas:


CREATE TABLE pedidos (
   id INT PRIMARY KEY,
   cliente_id INT,
   fecha DATE,
   total DECIMAL(10, 2)
);

CREATE TABLE clientes (
   id INT PRIMARY KEY,
   nombre VARCHAR(50),
   email VARCHAR(100)
);

¿Cuál sería la consulta correcta para obtener el nombre del cliente y el total de cada pedido?

Tests similares

Respuestas:


1. ¿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 primer valor que no sea NULL. Es útil para manejar valores predeterminados.

Ejemplo:

SELECT COALESCE(direccion, ‘Dirección desconocida’) AS direccion_final

FROM clientes;


2. ¿Cuál es el propósito de la cláusula LIMIT en SQL?

Respuesta: Restringir el número de filas devueltas por una consulta

Explicación:
La cláusula LIMIT especifica cuántas filas debe devolver la consulta. Es útil para obtener un subconjunto de resultados, como los 10 primeros registros.

Ejemplo:

SELECT * FROM pedidos LIMIT 10;


3. Dada la consulta:

SELECT cliente_id, AVG(total) as promedio_pedido 

FROM pedidos 

GROUP BY cliente_id 

HAVING AVG(total) > 1000; 

Respuesta: Lista los clientes cuyo pedido promedio es mayor a 1000

Explicación:

  • AVG(total) calcula el promedio de los pedidos por cliente.
  • HAVING AVG(total) > 1000 filtra clientes con un promedio superior a 1000.

4. Considera la consulta:

UPDATE pedidos 

SET total = total * 1.1 

WHERE fecha BETWEEN ‘2023-01-01’ AND ‘2023-12-31’; 

Respuesta: Aumenta en un 10% el total de los pedidos realizados en 2023

Explicación:
La cláusula UPDATE actualiza los valores de la columna total, aumentando en un 10% solo los pedidos cuya fecha está dentro del rango especificado por BETWEEN.


5. ¿Qué es una vista (view) en SQL?

Respuesta: Una consulta almacenada que se puede usar como una tabla virtual

Explicación:
Una vista es una consulta que se almacena y se utiliza como si fuera una tabla. No almacena datos físicamente, sino que obtiene resultados dinámicamente al ejecutarse.

Ejemplo:

CREATE VIEW vista_pedidos AS 

SELECT cliente_id, SUM(total) AS total_pedidos 

FROM pedidos 

GROUP BY cliente_id;


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

Respuesta: LEFT JOIN incluye todas las filas de la tabla izquierda, RIGHT JOIN de la derecha

Explicación:

  • LEFT JOIN: Devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha, si existen.
  • RIGHT JOIN: Devuelve todas las filas de la tabla derecha y las coincidentes de la izquierda, si existen.

7. ¿Qué hace la función SUBSTRING en SQL?

Respuesta: Extrae una parte de una cadena

Explicación:
SUBSTRING permite extraer una porción específica de una cadena, indicando la posición inicial y la longitud deseada.

Ejemplo:

SELECT SUBSTRING(‘Hola Mundo’, 1, 4); — Resultado: ‘Hola’


8. ¿Qué hace la cláusula DISTINCT en SQL?

Respuesta: Elimina duplicados del resultado

Explicación:
DISTINCT devuelve solo filas únicas, eliminando duplicados del conjunto de resultados.

Ejemplo:

SELECT DISTINCT departamento FROM empleados;


9. ¿Qué es una subconsulta (subquery) en SQL?

Respuesta: Una consulta dentro de otra consulta

Explicación:
Una subconsulta es una consulta anidada dentro de otra, generalmente dentro de las cláusulas SELECT, WHERE, o FROM.

Ejemplo:

SELECT nombre 

FROM clientes 

WHERE id IN (SELECT cliente_id FROM pedidos WHERE total > 1000);


10. ¿Cuál sería la consulta correcta para obtener el nombre del cliente y el total de cada pedido?

Respuesta:

SELECT clientes.nombre, pedidos.total 

FROM clientes 

JOIN pedidos ON clientes.id = pedidos.cliente_id;

Explicación:
El JOIN une las tablas clientes y pedidos basándose en la relación entre clientes.id y pedidos.cliente_id.

Deja un comentario