Hoja de ejercicios de Bases de datos y SQL con soluciones

Hoja de ejercicios de Bases de datos y SQL gratis e imprimible: 8 problemas desde nivel fácil hasta nivel de examen, con soluciones. Imprímela o guárdala como PDF.

Para docentes: pueden imprimirla, copiarla y usarla en clase gratis. Cada hoja nueva tiene valores nuevos y su propia clave de respuestas. Agradecemos un enlace a ExamProblems en la página de tu curso.

Nombre: ____________________   Fecha: ____________

1.Fácil

En PostgreSQL y MySQL, ¿qué cláusula devuelve solo las 10 primeras filas de un resultado?

  1. ATOP ROWS 10
  2. BFIRST 10 ONLY
  3. CLIMIT 10
  4. DMAX 10
2.Fácil

¿Qué es una clave subrogada (surrogate key)?

  1. AUna clave que hace referencia a otra tabla
  2. BUn identificador artificial sin significado de negocio, como un id autoincremental
  3. CUna clave formada con datos del mundo real, como una dirección de correo electrónico
  4. DUna clave que solo se usa en las vistas
3.Fácil

¿Qué hace GROUP BY en una consulta?

  1. AOrdena alfabéticamente las filas del resultado
  2. BCombina dos tablas por sus columnas comunes
  3. CElimina las filas con valores NULL
  4. DAgrupa las filas con los mismos valores para que las agregaciones se calculen por grupo
4.Media

La tabla orders tiene 5 filas y cada una hace referencia a un cliente existente. La tabla customers tiene 3 filas. ¿Cuántas filas devuelve un INNER JOIN por customer_id?

  1. A8
  2. B5
  3. C3
  4. D15
5.Media

¿Qué devuelve EXCEPT (llamado MINUS en Oracle)?

  1. ATodas las filas de ambas consultas sin duplicados
  2. BLas filas de la segunda consulta que no aparecen en la primera
  3. CLas filas de la primera consulta que no aparecen en la segunda
  4. DLas filas que aparecen en ambas consultas
6.Media

¿Qué consulta muestra los clientes que nunca han hecho un pedido?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
7.Difícil

Una aplicación ejecuta UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 e informa de un conflicto si no se actualizó ninguna fila. ¿Qué técnica es esta?

  1. ARegistro de escritura anticipada
  2. BFragmentación (sharding) de la base de datos
  3. CControl de concurrencia optimista
  4. DBloqueo estricto en dos fases con bloqueos de fila
8.Difícil

La transacción T1 bloquea la fila A y espera a la fila B, mientras que T2 bloquea la fila B y espera a la fila A. ¿Qué hace un SGBD típico?

  1. AFusiona las dos transacciones en una
  2. BDetecta el interbloqueo y aborta una transacción como víctima
  3. CDeja que ambas transacciones esperen hasta que una de ellas se confirme con normalidad
  4. DConfirma ambas transacciones a la vez

Soluciones

  1. 1. C · LIMIT 10
  2. 2. B · Un identificador artificial sin significado de negocio, como un id autoincremental
  3. 3. D · Agrupa las filas con los mismos valores para que las agregaciones se calculen por grupo
  4. 4. B · 5
  5. 5. C · Las filas de la primera consulta que no aparecen en la segunda
  6. 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. C · Control de concurrencia optimista
  8. 8. B · Detecta el interbloqueo y aborta una transacción como víctima

Soluciones completas paso a paso: practica este tema en examproblems.com.