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

¿Qué hace UNION con los resultados de dos consultas SELECT?

  1. ALos combina en un solo resultado y elimina las filas duplicadas
  2. BConserva solo las filas que aparecen en ambos
  3. CLos une uno al lado del otro mediante una clave
  4. DConserva solo las filas que aparecen en la primera consulta pero no en la segunda
2.Fácil

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

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

Un INNER JOIN devuelve:

  1. ASolo las filas con valores coincidentes en ambas tablas
  2. BTodas las filas de ambas tablas
  3. CLas filas que no coinciden
  4. DTodas las filas de la tabla izquierda, con NULL donde no hay coincidencia
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. A5
  2. B8
  3. C3
  4. D15
5.Media

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

  1. ALas filas que aparecen en ambas consultas
  2. BLas filas de la segunda consulta que no aparecen en la primera
  3. CTodas las filas de ambas consultas sin duplicados
  4. DLas filas de la primera consulta que no aparecen en la segunda
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 = NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS 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. AControl de concurrencia optimista
  2. BRegistro de escritura anticipada
  3. CBloqueo estricto en dos fases con bloqueos de fila
  4. DFragmentación (sharding) de la base de datos
8.Difícil

¿Qué es un índice de cobertura (covering index) para una consulta?

  1. AUn índice que se reconstruye cada noche
  2. BUn índice que contiene todas las columnas que necesita la consulta, de modo que no hay que leer la propia tabla
  3. CUn índice solo sobre la clave primaria
  4. DUn índice que cubre todas las columnas de todas las tablas

Soluciones

  1. 1. A · Los combina en un solo resultado y elimina las filas duplicadas
  2. 2. D · Un identificador artificial sin significado de negocio, como un id autoincremental
  3. 3. A · Solo las filas con valores coincidentes en ambas tablas
  4. 4. A · 5
  5. 5. D · Las filas de la primera consulta que no aparecen en la segunda
  6. 6. C · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. A · Control de concurrencia optimista
  8. 8. B · Un índice que contiene todas las columnas que necesita la consulta, de modo que no hay que leer la propia tabla

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