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é es una clave subrogada (surrogate key)?

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

¿Qué sentencia elimina filas de una tabla?

  1. ATRUNCATE COLUMN
  2. BDROP
  3. CREMOVE
  4. DDELETE
3.Fácil

¿Qué sentencia SQL recupera datos de una tabla?

  1. AUPDATE
  2. BCREATE
  3. CSELECT
  4. DINSERT
4.Media

Una vista (view) en SQL es:

  1. AUna consulta almacenada que se comporta como una tabla virtual
  2. BUna copia de una tabla en disco
  3. CUn tipo de índice
  4. DUna pantalla del cliente de la base de datos para explorar las tablas
5.Media

¿Qué consulta devuelve el salario más alto de cada departamento?

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT MAX(dept), salary FROM emp GROUP BY salary
  3. CSELECT dept, MAX(salary) FROM emp GROUP BY dept
  4. DSELECT dept, salary FROM emp WHERE salary = MAX(salary)
6.Media

¿Por qué se crean índices sobre columnas?

  1. APara ahorrar espacio en disco
  2. BPara que las inserciones y las actualizaciones sobre esas columnas sean más rápidas
  3. CPara acelerar las búsquedas y las combinaciones sobre esas columnas
  4. DPara impedir valores NULL
7.Difícil

Tras customers LEFT JOIN orders, ¿por qué usar COUNT(o.id) en lugar de COUNT(*) para contar los pedidos de cada cliente?

  1. ACOUNT(*) cuenta como 1 la fila rellenada con NULL de los clientes sin pedidos
  2. BCOUNT(*) ignora las filas con valores NULL
  3. CCOUNT(o.id) solo cuenta clientes distintos
  4. DCOUNT(*) no se permite después de una combinación
8.Difícil

¿Qué devuelve SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp?

  1. AUn error, porque name no está en un GROUP BY
  2. BSolo los empleados que ganan más que la media de su departamento
  3. CUna fila por departamento con su salario medio
  4. DCada fila de empleado junto con el salario medio de su departamento

Soluciones

  1. 1. C · Un identificador artificial sin significado de negocio, como un id autoincremental
  2. 2. D · DELETE
  3. 3. C · SELECT
  4. 4. A · Una consulta almacenada que se comporta como una tabla virtual
  5. 5. C · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. C · Para acelerar las búsquedas y las combinaciones sobre esas columnas
  7. 7. A · COUNT(*) cuenta como 1 la fila rellenada con NULL de los clientes sin pedidos
  8. 8. D · Cada fila de empleado junto con el salario medio de su departamento

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