BLOQUE 3 TEMA 3 INGENIERIA INFORMATICA
|
|
Título del Test:
![]() BLOQUE 3 TEMA 3 INGENIERIA INFORMATICA Descripción: Bloque 3 Tema 3 SQL |



| Comentarios |
|---|
NO HAY REGISTROS |
|
1.Señale la respuesta INCORRECTA referente a los disparadores o triggers de una base de datos: a) Son procedimientos que se ejecutan o activan cada vez que ocurre un evento determinado sobre una tabla determinada. b) Los eventos que se pueden asociar a la ejecución de un trigger son: INSERT, UPDATE, DELETE. c) Puede decidirse que se activen antes o después de un evento determinado. d) Un error durante la ejecución de cualquier trigger no cancela automáticamente la operación que lo disparó, la cancelación hay que programarla. 2.Señale la respuesta INCORRECTA referente a los eventos en SQL: a) Es una tarea que se ejecuta de forma automática en un momento temporal previamente programado. b) Se definen como CREATE EVENT nombre_evento. c) La temporalidad de los eventos se indica en la cláusula ON SCHEDULE. d) Una vez que el evento se ha ejecutado hay que eliminarlo manualmente. 3.¿Qué sentencia habría que ejecutar si se quiere añadir un nuevo registro a la tabla “CuerpoBecado”?. a) INSERT INTO CuerpoBecado (Codigo, Denominacion) VALUES ('TAI', 'Técnico Auxiliar de Informática');. b) INSERT INTO CuerpoBecado (Codigo, Denominacion) VALUES (TAI, Técnico Auxiliar de Informática);. c) INSERT TO CuerpoBecado (Codigo, Denominacion) VALUES ('TAI', 'Técnico Auxiliar de Informática');. d) INSERT INTO CuerpoBecado (Codigo, Denominacion) VALUES ('TAI, 'Técnico Auxiliar de Informática');. 4.Para resolver una incidencia, necesita saber qué ficheros adjuntos de la solicitud del interesado con DNI 00000000T para el año 2024 no son PDF. ¿Cómo los obtendría?. a) SELECT * FROM FicheroAdjunto WHERE Denominacion LIKE '%.pdf' AND IdSolicitudBeca = (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024 AND IdInteresado = (SELECT IdInteresado WHERE DocumentoIdentidad = '00000000T'));. b) SELECT * FROM FicheroAdjunto WHERE Denominacion NOT LIKE '%.pdf' AND IdSolicitudBeca = (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024 AND IdInteresado = (SELECT IdInteresado FROM Interesado));. c) SELECT * FROM FicheroAdjunto WHERE Denominacion NOT LIKE '%.pdf' AND IdSolicitudBeca = (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024 AND IdInteresado = (SELECT IdInteresado FROM Interesado WHERE DocumentoIdentidad = '00000000T')). d) SELECT * FROM FicheroAdjunto WHERE Denominacion NOT LIKE 'pdf' AND IdSolicitudBeca = (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024 AND IdInteresado = (SELECT IdInteresado FROM Interesado WHERE DocumentoIdentidad = '00000000T'));. 5.Con respecto a COUNT en SQL, señale la afirmación correcta: a) COUNT() no cuenta valores nulos. b) COUNT(columna) cuenta valores nulos. c) COUNT() cuenta todas las filas, incluidos los valores nulos. d) COUNT(columna) siempre devuelve el mismo valor que COUNT(*). 6.Respecto a TRUNCATE, señale la afirmación correcta: a) Permite usar cláusula WHERE. b) Es totalmente transaccional y permite rollback en todos los SGBD. c) Borra la estructura de la tabla. d) Realiza un borrado rápido y deja intacta la estructura de la tabla. 7.Sobre los niveles de aislamiento, indique cuál es el que evita completamente problemas de concurrencia: a) READ UNCOMMITTED. b) READ COMMITTED. c) REPEATABLE READ. d) SERIALIZABLE. 8.¿Cuál de las siguientes situaciones corresponde a una lectura fantasma?. a) Leer datos no confirmados. b) Leer una fila modificada después por otra transacción. c) Leer un conjunto y que aparezcan nuevas filas al repetir la consulta. d) Leer una tabla bloqueada. 9.¿Cuál es la diferencia principal entre INNER JOIN y LEFT JOIN?. a) INNER JOIN devuelve todas las filas de ambas tablas. b) LEFT JOIN devuelve todas las filas de la tabla izquierda, aunque no haya coincidencia. c) INNER JOIN devuelve todas las filas de la tabla izquierda. d) LEFT JOIN elimina duplicados automáticamente. 10.Respecto a MERGE en SQL, indique la afirmación correcta: a) Solo permite insertar registros. b) Solo permite actualizar registros. c) Permite insertar y actualizar en función de si existe coincidencia. d) Sustituye a DELETE. 11.En una consulta SQL, ¿qué ocurre si se utiliza GROUP BY sin incluir en la cláusula SELECT todos los campos no agregados?. a) La consulta se ejecuta correctamente en todos los SGBD. b) Se produce un error porque todos los campos no agregados deben aparecer en el GROUP BY. c) Los campos omitidos se consideran NULL. d) Se comporta como un DISTINCT automático. 12.¿Cuál es el resultado de ejecutar COUNT(columna) cuando la columna contiene valores nulos?. a) Cuenta todas las filas incluyendo nulos. b) No cuenta las filas cuyo valor en esa columna es NULL. c) Devuelve NULL si hay algún valor nulo. d) Devuelve siempre el mismo valor que COUNT(*). 13.En una subconsulta correlacionada: a) No puede hacer referencia a columnas de la consulta externa. b) Se ejecuta una única vez. c) Se ejecuta para cada fila evaluada en la consulta externa. d) Solo puede utilizarse con EXISTS. 14.¿Cuál de las siguientes afirmaciones sobre LEFT OUTER JOIN es correcta?. a) Devuelve solo las filas coincidentes entre ambas tablas. b) Devuelve todas las filas de la tabla derecha. c) Devuelve todas las filas de la tabla izquierda y NULL cuando no hay coincidencia. d) Es equivalente a CROSS JOIN con condición WHERE. 15.¿Cuál es la principal diferencia entre DELETE y TRUNCATE?. a) DELETE no permite WHERE. b) TRUNCATE puede usar WHERE. c) TRUNCATE realiza un borrado masivo rápido y normalmente no es recuperable mediante rollback. d) DELETE elimina la estructura de la tabla. 16.¿Cuál de los siguientes niveles de aislamiento permite lecturas sucias?. a) READ UNCOMMITTED. b) READ COMMITTED. c) REPEATABLE READ. d) SERIALIZABLE. 17.En SQL, la cláusula HAVING se utiliza para: a) Filtrar filas antes del GROUP BY. b) Filtrar grupos después del GROUP BY. c) Ordenar resultados agregados. d) Sustituir al WHERE cuando hay JOIN. 18.¿Qué hace la sentencia MERGE?. a) Solo inserta registros. b) Solo actualiza registros existentes. c) Inserta o actualiza registros según exista coincidencia. d) Elimina registros duplicados. 19.En una transacción SQL, ¿qué función cumple SAVEPOINT?. a) Finaliza la transacción. b) Crea un punto intermedio al que se puede volver con ROLLBACK. c) Confirma los cambios realizados hasta ese momento. d) Bloquea las filas modificadas. 20.Respecto a los TRIGGERS, señale la afirmación correcta: a) Pueden aceptar parámetros de entrada. b) Pueden ejecutar COMMIT dentro de su cuerpo en cualquier SGBD. c) Se ejecutan automáticamente ante un evento determinado sobre una tabla. d) Solo pueden definirse AFTER INSERT. 21.En una consulta SQL que utiliza GROUP BY, ¿cuál de las siguientes sentencias es correcta?. a) Las columnas del SELECT que no estén dentro de una función de agregado deben aparecer en el GROUP BY. b) GROUP BY solo puede utilizarse con COUNT. c) HAVING se evalúa antes que WHERE. d) GROUP BY elimina automáticamente los valores nulos. 22.¿Qué ocurre si una subconsulta utilizada con = devuelve más de una fila?. a) SQL toma automáticamente la primera fila. b) Se produce un error. c) Se convierte implícitamente en IN. d) Devuelve NULL. 23.¿Cuál de las siguientes afirmaciones sobre EXISTS es correcta?. a) Devuelve TRUE solo si la subconsulta devuelve exactamente una fila. b) Devuelve TRUE si la subconsulta devuelve al menos una fila. c) Devuelve el número de filas de la subconsulta. d) Solo puede utilizarse con subconsultas no correlacionadas. 24.En relación con TRUNCATE, señale la afirmación correcta: a) Permite usar cláusula WHERE. b) Borra fila a fila registrando cada operación en el log. c) Es más lento que DELETE en grandes volúmenes. d) Suele implicar commit implícito y no permite rollback en muchos SGBD. 25.¿Cuál de los siguientes fenómenos se evita con el nivel de aislamiento REPEATABLE READ?. a) Lectura sucia. b) Lectura fantasma. c) Inserciones concurrentes. d) Bloqueos de tabla completos. 26.En una consulta con LEFT JOIN, si no hay coincidencia en la tabla derecha: a) La fila se elimina del resultado. b) Se repite la última coincidencia válida. c) Los campos de la derecha aparecen como NULL. d) Se produce un error de integridad. 27.¿Cuál es la función de la cláusula WITH CHECK OPTION en una vista?. a) Impide insertar o actualizar registros que no cumplan la condición de la vista. b) Valida claves primarias automáticamente. c) Optimiza el plan de ejecución. d) Permite actualizar cualquier tabla subyacente. 28.¿Qué ocurre si se ejecuta ROLLBACK después de un COMMIT?. a) Se deshacen los cambios del último COMMIT. b) Se produce un error siempre. c) Se vuelve al último SAVEPOINT. d) No tiene efecto sobre las operaciones ya confirmadas. 29.En relación con UNION y UNION ALL, señale la afirmación correcta: a) UNION ALL elimina duplicados. b) UNION elimina duplicados por defecto. c) Ambas eliminan duplicados. d) Ninguna permite combinar consultas con distinto número de columnas. 30.Respecto a los TRIGGERS, indique cuál es correcta: a) Solo pueden definirse AFTER INSERT. b) Pueden aceptar parámetros de entrada y salida. c) No pueden ejecutarse BEFORE UPDATE. d) No pueden ejecutar explícitamente COMMIT o ROLLBACK dentro de su cuerpo en muchos SGBD. 31.Dada la sentencia: SELECT nombre FROM empleado WHERE salario > ALL (SELECT salario FROM empleado WHERE departamento = 'IT'); ¿Qué empleados devolverá?. a) Los empleados cuyo salario sea mayor que al menos uno del departamento IT. b) Los empleados cuyo salario sea mayor que todos los del departamento IT. c) Los empleados cuyo salario sea igual al máximo del departamento IT. d) Los empleados del departamento IT. 32.Señale la afirmación correcta respecto a NATURAL JOIN: a) Es equivalente a CROSS JOIN. b) Requiere especificar siempre la cláusula ON. c) Une automáticamente las tablas por las columnas que tengan el mismo nombre. d) Elimina automáticamente los registros duplicados del resultado. 33.¿Qué realiza la sentencia INSERT INTO destino SELECT * FROM origen?. a) Copia la estructura de la tabla origen. b) Copia los datos resultantes del SELECT en la tabla destino. c) Sustituye completamente la tabla destino. d) Fusiona registros existentes. 34.¿Cuál es la finalidad principal de un índice en una tabla?. a) Garantizar que no existan valores duplicados. b) Reducir el tamaño de la tabla. c) Cambiar el orden físico permanente de las filas. d) Mejorar el rendimiento en búsquedas y consultas. 35.Un objeto SEQUENCE en SQL se utiliza para: a) Generar valores numéricos secuenciales. b) Ordenar automáticamente los resultados de una consulta. c) Garantizar la integridad referencial. d) Crear claves foráneas automáticamente. 36.¿Cuál es la diferencia fundamental entre una función y un procedimiento almacenado?. a) La función no puede recibir parámetros. b) El procedimiento siempre devuelve un valor. c) La función devuelve un valor y el procedimiento no. d) No existe diferencia en SQL estándar. 37.¿Qué efecto tiene añadir FOR UPDATE a una sentencia SELECT dentro de una transacción?. a) Actualiza automáticamente las filas seleccionadas. b) Bloquea las filas seleccionadas para evitar su modificación por otras transacciones. c) Cambia el nivel de aislamiento de la transacción. d) Hace permanente la transacción. 38.En una transacción distribuida, el protocolo two-phase commit garantiza que: a) El COMMIT se ejecuta dos veces en cada base de datos. b) Las transacciones se ejecutan de manera secuencial. c) Todas las bases de datos confirmen o ninguna lo haga. d) Se eliminen los bloqueos antes del COMMIT. 39.Dada la sentencia: SELECT salario * 1.1 AS nuevo_salario FROM empleado ORDER BY nuevo_salario DESC;. a) Produce error porque no se puede ordenar por alias. b) Ordena correctamente por el alias definido. c) Ordena por el salario original. d) Solo funciona si se usa GROUP BY. 40.¿Para qué se utiliza la cláusula LIMIT (en los sistemas que la soportan)?. a) Para limitar el número de columnas devueltas. b) Para limitar el número de filas devueltas. c) Para eliminar duplicados automáticamente. d) Para bloquear registros seleccionados. 41.Dada la consulta: SELECT COUNT(columna) FROM tabla; Si la tabla tiene 10 filas y 3 de ellas tienen columna = NULL, ¿qué valor devolverá?. a) 10. b) 7. c) NULL. d) Error. 42.Considere la consulta: SELECT * FROM A LEFT JOIN B ON A.id = B.id WHERE B.id IS NOT NULL; El resultado es equivalente a: a) LEFT JOIN original sin cambios. b) INNER JOIN entre A y B. c) CROSS JOIN. d) RIGHT JOIN. 43.¿Qué ocurre si se ejecuta la siguiente consulta y la subconsulta devuelve al menos un NULL? SELECT * FROM empleado WHERE id NOT IN (SELECT id_jefe FROM empleado);. a) Devuelve los empleados que no son jefes. b) Devuelve todas las filas. c) No devuelve ninguna fila. d) Produce error de sintaxis. 44.Dada la consulta: SELECT departamento, COUNT(*) FROM empleado WHERE salario > 2000 GROUP BY departamento HAVING COUNT(*) > 5; ¿En qué orden lógico se evalúan las cláusulas?. a) GROUP BY → WHERE → HAVING. b) WHERE → GROUP BY → HAVING. c) HAVING → WHERE → GROUP BY. d) WHERE → HAVING → GROUP BY. 45.Dada la consulta: SELECT COUNT(*) FROM empleado WHERE salario > 2000; Si ningún empleado cumple la condición, ¿qué devuelve la consulta?. a) 0. b) NULL. c) Error. d) Una fila vacía. 46.Considere la consulta: SELECT * FROM A LEFT JOIN B ON A.id = B.id WHERE B.id IS NULL; ¿Qué devuelve?. a) Todas las filas coincidentes entre A y B. b) Las filas de A que no tienen correspondencia en B. c) Todas las filas de B sin correspondencia en A. d) El producto cartesiano. 47.¿Qué ocurre si una subconsulta usada con IN devuelve un conjunto vacío? SELECT * FROM empleado WHERE id IN (SELECT id_jefe FROM empleado WHERE 1=0);. a) Devuelve todas las filas. b) Produce error. c) Devuelve ninguna fila. d) Devuelve una fila con NULL. 48.En SQL estándar, ¿cuál es el orden lógico correcto de evaluación de una consulta?. a) SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY. b) FROM → WHERE → SELECT → GROUP BY → HAVING → ORDER BY. c) FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. d) WHERE → FROM → GROUP BY → HAVING → SELECT → ORDER BY. 49.¿Qué ocurre si se ejecuta ROLLBACK después de haber ejecutado previamente COMMIT en la misma transacción?. a) Se deshacen los cambios del último COMMIT. b) No tiene efecto sobre los cambios ya confirmados. c) Produce error de transacción cerrada. d) Revierte hasta el último SAVEPOINT. 50.Dada la consulta: SELECT departamento, MAX(salario) FROM empleado; ¿Qué ocurre en SQL estándar?. a) Devuelve el salario máximo de cada departamento. b) Devuelve una única fila con el salario máximo global. c) Produce error porque falta GROUP BY. d) Devuelve todos los departamentos con su salario máximo. 51.En el nivel de aislamiento READ UNCOMMITTED: a) Se permiten lecturas sucias. b) Se evitan lecturas no repetibles. c) Se bloquean filas modificadas automáticamente. d) Se evita la lectura fantasma. 52.¿Cuál es la diferencia principal entre UNION y UNION ALL?. a) UNION ALL elimina duplicados automáticamente. b) UNION requiere ORDER BY obligatorio. c) UNION elimina duplicados; UNION ALL no. d) UNION ALL solo funciona con columnas numéricas. 53.Si en una subconsulta con NOT IN existe al menos un valor NULL, el resultado será: a) Se ignoran los NULL y funciona normalmente. b) Se produce error de ejecución. c) Devuelve todas las filas. d) No devuelve ninguna fila. 54.¿Qué ocurre si en una consulta con GROUP BY se incluye una columna en SELECT que no está agregada ni incluida en el GROUP BY?. a) Se agrupa automáticamente por esa columna. b) Devuelve valores arbitrarios. c) Produce error en SQL estándar. d) Se convierte en DISTINCT implícito. 55.Considere la siguiente consulta: SELECT * FROM empleado WHERE id NOT IN (SELECT id_jefe FROM empleado); Si en la columna id_jefe existe al menos un valor NULL, ¿qué ocurrirá?. a) Se devolverán los empleados que no son jefes. b) Se ignorarán los valores NULL y funcionará normalmente. c) No se devolverá ninguna fila. d) Se producirá un error de ejecución. |





