Preguntas y respuestas: SQL y bases de datos

Repasa SQL y bases de datos: aquí tienes una selección de preguntas de todos los niveles, con respuesta y explicación. Para ponerte a prueba sin ver las respuestas, juega a los quizzes.

Jugar a los quizzes de SQL y bases de datos

Fácil

¿Qué instrucción SQL permite leer los datos de una tabla sin modificarlos?

Respuesta : SELECT

SELECT lee las filas pedidas. INSERT añade, UPDATE modifica y DELETE elimina filas.

¿Qué palabra clave colocada después de SELECT elimina las filas idénticas del resultado?

Respuesta : DISTINCT

DISTINCT conserva una sola aparición de cada fila idéntica en el resultado.

¿Qué cláusula conserva solo las filas que cumplen una condición?

Respuesta : WHERE

WHERE filtra las filas según una condición, por ejemplo WHERE age >= 18.

¿Con qué cláusula se ordenan las filas de un resultado?

Respuesta : ORDER BY

ORDER BY nom ASC ordena en orden creciente, y DESC en orden decreciente.

¿Qué instrucción añade una nueva fila a una tabla?

Respuesta : INSERT

INSERT INTO añade una fila; UPDATE modifica filas existentes, CREATE crea una tabla y ALTER cambia su estructura.

En el modelo relacional, ¿cómo se llama una fila de una tabla?

Respuesta : Una tupla, también llamada registro

Una fila es una tupla, también llamada registro; una columna corresponde a un atributo.

¿Cuál es el papel de una clave primaria en una tabla?

Respuesta : Identificar de forma única cada fila

La clave primaria no puede ser NULL ni repetirse, lo que permite identificar cada fila sin ambigüedad.

¿En qué año publicó Edgar F. Codd el modelo relacional de las bases de datos?

Respuesta : 1970

Edgar F. Codd publicó en 1970 el artículo fundacional del modelo relacional, en el que se basa SQL.

Medio

¿Qué join solo conserva las filas que tienen correspondencia en las dos tablas?

Respuesta : INNER JOIN

INNER JOIN solo conserva las correspondencias; LEFT JOIN conserva todas las filas de la tabla de la izquierda, con NULL cuando no hay correspondencia.

¿Qué consulta cuenta el número de clientes de cada ciudad?

Respuesta : SELECT ville, COUNT(*) FROM clients GROUP BY ville

GROUP BY ville agrupa las filas por ville, y COUNT(*) cuenta las filas de cada grupo.

¿Qué cláusula filtra los grupos después de un GROUP BY, según un agregado?

Respuesta : HAVING

WHERE filtra las filas antes de la agrupación; HAVING filtra los grupos, por ejemplo HAVING COUNT(*) > 5.

¿Qué función de agregación calcula la media de una columna numérica?

Respuesta : AVG

AVG calcula la media de los valores no NULL de una columna numérica.

¿Qué condición permite encontrar las filas en las que una columna no tiene ningún valor?

Respuesta : WHERE email IS NULL

Una comparación con = o <> a NULL nunca es verdadera: se usa IS NULL o IS NOT NULL.

En SELECT nom FROM clients WHERE id IN (SELECT client_id FROM commandes), ¿qué devuelve la subconsulta?

Respuesta : Devuelve la lista de client_id presentes en la tabla commandes

La subconsulta devuelve una lista de valores; la consulta externa conserva los clientes cuyo id figura en esa lista.

¿Cuál es el papel de una clave externa?

Respuesta : Referenciar la clave primaria de otra tabla

Una clave externa referencia una clave, en general la clave primaria de otra tabla; el SGBD puede rechazar un valor ausente de esa tabla.

¿Qué operador combina los resultados de dos consultas eliminando las filas duplicadas?

Respuesta : UNION

UNION fusiona los resultados eliminando los duplicados; UNION ALL los conserva todos, sin ese paso de eliminación.

Difícil

¿Qué designa la letra A de la sigla ACID?

Respuesta : Atomicidad

Atomicidad: una transacción se ejecuta por completo o no se ejecuta en absoluto. ACID agrupa también la consistencia, el aislamiento y la durabilidad.

¿Qué nivel de aislamiento ANSI prohíbe las lecturas sucias pero permite las lecturas no repetibles?

Respuesta : READ COMMITTED

READ COMMITTED solo lee datos confirmados, pero una misma fila puede cambiar entre dos lecturas de una transacción.

¿Qué impone la segunda forma normal (2FN)?

Respuesta : Estar en 1FN y evitar dependencias parciales sobre una clave compuesta

La 2FN supone la 1FN y, además, que ningún atributo no clave dependa de una parte solo de una clave compuesta.

¿Qué estructura se usa por defecto para los índices de InnoDB, el motor de almacenamiento de MySQL?

Respuesta : Un árbol B+

InnoDB organiza sus índices en árboles B+, cuyas hojas están encadenadas entre sí para los recorridos por rango.

¿Qué hace el comando EXPLAIN colocado delante de una consulta SELECT?

Respuesta : Muestra el plan de ejecución previsto sin ejecutar la consulta

EXPLAIN muestra el plan previsto (índices, orden de las uniones) sin ejecutar la consulta; EXPLAIN ANALYZE, en cambio, la ejecuta.

¿Qué es una vista SQL ordinaria, creada con CREATE VIEW?

Respuesta : Un nombre dado a una consulta SELECT, que se vuelve a ejecutar en cada lectura

Una vista ordinaria no almacena nada: se vuelve a ejecutar en cada lectura. Una vista materializada, en cambio, conserva sus resultados.

¿Qué es un disparador (trigger) en una base SQL?

Respuesta : Código SQL que se ejecuta automáticamente en un INSERT, UPDATE o DELETE sobre una tabla

Un trigger se ejecuta automáticamente cuando ocurre un evento en una tabla; un procedimiento almacenado, en cambio, se llama explícitamente con CALL.

¿Qué dice el teorema CAP, propuesto por Eric Brewer?

Respuesta : Un sistema distribuido no puede garantizar a la vez consistencia, disponibilidad y tolerancia a las particiones

Cuando la red se corta entre nodos, un sistema distribuido debe elegir entre consistencia y disponibilidad.

Temas relacionados

Jugar a los quizzes de SQL y bases de datos