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

Las sentencias como CREATE, ALTER y DROP pertenecen a ¿qué parte de SQL?

  1. ALenguaje de control de transacciones (TCL)
  2. BLenguaje de control de datos (DCL)
  3. CLenguaje de definición de datos (DDL)
  4. DLenguaje de manipulación de datos (DML)
2.Fácil

GRANT y REVOKE pertenecen a ¿qué parte de SQL?

  1. ALenguaje de control de datos (DCL)
  2. BLenguaje de consulta de datos (DQL)
  3. CLenguaje de manipulación de datos (DML)
  4. DLenguaje de definición de datos (DDL)
3.Fácil

¿Qué hace COMMIT en una transacción?

  1. ACrea una tabla nueva
  2. BHace permanentes todos los cambios de la transacción
  3. CDeshace todos los cambios hechos desde que empezó la transacción
  4. DBloquea toda la base de datos
4.Media

¿Qué significa la dependencia funcional A → B?

  1. AA y B son ambas claves primarias
  2. BCada valor de B está asociado a exactamente un valor de A
  3. CCada valor de A está asociado a exactamente un valor de B
  4. DA es una clave foránea que hace referencia a B
5.Media

Una columna contiene los valores 10, 20 y NULL. ¿Qué devuelve AVG(col)?

  1. A30
  2. BNULL
  3. C15
  4. D10
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 NOT 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 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

Dos transacciones leen stock = 10, cada una resta 1 y escribe el resultado, lo que da 9 en lugar de 8. ¿Qué anomalía es esta?

  1. ALectura sucia
  2. BAnomalía de eliminación
  3. CLectura fantasma
  4. DActualización perdida
8.Difícil

Una tabla tiene un millón de filas y una columna booleana is_active que es TRUE en el 95% de ellas. ¿Por qué podría el optimizador ignorar un índice sobre is_active para WHERE is_active = TRUE?

  1. AEl índice trata TRUE como NULL
  2. BEl optimizador nunca usa índices en las cláusulas WHERE
  3. CNo se pueden crear índices sobre columnas booleanas
  4. DLa mayoría de las filas coinciden, así que un recorrido completo de la tabla es más barato que muchas búsquedas en el índice

Soluciones

  1. 1. C · Lenguaje de definición de datos (DDL)
  2. 2. A · Lenguaje de control de datos (DCL)
  3. 3. B · Hace permanentes todos los cambios de la transacción
  4. 4. C · Cada valor de A está asociado a exactamente un valor de B
  5. 5. C · 15
  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. D · Actualización perdida
  8. 8. D · La mayoría de las filas coinciden, así que un recorrido completo de la tabla es más barato que muchas búsquedas en el índice

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