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é sentencia SQL añade filas nuevas a una tabla?

  1. AINSERT
  2. BSELECT
  3. CUPDATE
  4. DALTER
2.Fácil

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

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

En un patrón LIKE, ¿qué representa el comodín _ (guion bajo)?

  1. ACualquier letra, pero ningún dígito
  2. BUn carácter de espacio
  3. CExactamente un carácter
  4. DCero o más caracteres
4.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 = NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
5.Media

¿Qué consulta devuelve el número de pedidos por cliente?

  1. ASELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  2. BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  3. CSELECT DISTINCT COUNT(*) FROM orders
  4. DSELECT customer_id FROM orders WHERE COUNT(*) > 0
6.Media

Una clave foránea se declara con ON DELETE CASCADE. ¿Qué ocurre cuando se elimina una fila padre?

  1. ALa fila padre se copia en una tabla de archivo
  2. BLa eliminación se rechaza siempre
  3. CLas filas hijas que la referencian se eliminan automáticamente
  4. DLa clave foránea de las filas hijas se pone automáticamente a NULL
7.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 optimizador nunca usa índices en las cláusulas WHERE
  2. BEl índice trata TRUE como NULL
  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
8.Difícil

La forma normal de Boyce-Codd (FNBC) exige que, para toda dependencia funcional no trivial X → Y:

  1. AY sea una clave primaria
  2. BX contenga NULL
  3. CX sea una superclave
  4. DY sea atómico

Soluciones

  1. 1. A · INSERT
  2. 2. B · Lenguaje de control de datos (DCL)
  3. 3. C · Exactamente un carácter
  4. 4. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  5. 5. A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. C · Las filas hijas que la referencian se eliminan automáticamente
  7. 7. 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
  8. 8. C · X sea una superclave

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