1.Fácil
¿Qué cláusula filtra filas antes de agrupar?
- AGROUP BY
- BORDER BY
- CWHERE
- DHAVING
2.Fácil
¿Qué es una clave primaria (primary key)?
- AUna columna o conjunto de columnas que identifica de forma única cada fila
- BUna columna que puede contener valores duplicados pero nunca debe contener NULL
- CLa primera columna de cada tabla
- DUna contraseña para la base de datos
3.Fácil
¿Qué sentencia SQL recupera datos de una tabla?
- AUPDATE
- BCREATE
- CINSERT
- DSELECT
4.Media
Un LEFT JOIN devuelve:
- ASolo las filas coincidentes de ambas tablas
- BSolo todas las filas de la tabla derecha
- CTodas las filas de la tabla izquierda y las filas coincidentes de la derecha, con NULL donde no hay coincidencia
- DLas filas que no coinciden en ninguna de las dos tablas
5.Media
¿Qué consulta muestra los clientes que nunca han hecho un pedido?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
6.Media
¿Qué consulta devuelve el salario más alto de cada departamento?
- ASELECT dept, MAX(salary) FROM emp ORDER BY dept
- BSELECT dept, MAX(salary) FROM emp GROUP BY dept
- CSELECT dept, salary FROM emp WHERE salary = MAX(salary)
- DSELECT MAX(dept), salary FROM emp GROUP BY salary
7.Difícil
R(A, B, C, D) tiene las dependencias funcionales A → B y C → D. ¿Cuál es la clave candidata?
- A{B, D}
- B{A, C}
- C{C}
- D{A}
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?
- ALa 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
- BEl optimizador nunca usa índices en las cláusulas WHERE
- CEl índice trata TRUE como NULL
- DNo se pueden crear índices sobre columnas booleanas
Soluciones
- 1. C · WHERE
- 2. A · Una columna o conjunto de columnas que identifica de forma única cada fila
- 3. D · SELECT
- 4. C · Todas las filas de la tabla izquierda y las filas coincidentes de la derecha, con NULL donde no hay coincidencia
- 5. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 6. B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
- 7. B · {A, C}
- 8. A · 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.