B3-T3 - Lenguajes SQL. Estándar ANSI SQL. Procedimientos almacenados. Eventos y disparadores. Flashcards
¿Cuál de las siguientes opciones NO es un tipo de comando SQL?
a) DDL
b) DML
c) DCM
d) TCL
C
DCM
Los tipos de comandos SQL son DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language) y TCL (Transaction Control Language).
¿Qué nivel de aislamiento en las transacciones SQL previene las lecturas sucias, las lecturas no repetibles y las lecturas fantasma?
a) Read Uncommitted
b) Read Committed
c) Repeatable Read
d) Serializable
D
Serializable
El nivel de aislamiento Serializable es el más restrictivo pero garantiza la consistencia total al ejecutar transacciones de manera completamente aislada.
¿Qué tipo de lenguaje es SQL? (T)
SQL es un lenguaje de consulta estructurado, declarativo con extensión procedural.
Qué comando SQL se utiliza para deshacer los cambios realizados en una base de datos desde el inicio de una transacción?
ROLLBACK
¿Cuál de las siguientes opciones NO es un tipo de comando DML en SQL?
A. INSERT
B. UPDATE
C. GRANT
D. DELETE
C
GRANT
Los comandos DML se utilizan para manipular datos, mientras que GRANT es un comando DCL que se utiliza para controlar el acceso a los datos.
¿Qué tipo de JOIN devuelve todas las filas de la tabla izquierda y las coincidencias de la derecha, mostrando NULL en la derecha si no hay coincidencia?
A. INNER JOIN
B. LEFT [OUTER] JOIN
C. RIGHT [OUTER] JOIN
D. FULL [OUTER] JOIN
B
LEFT [OUTER] JOIN
Un LEFT JOIN siempre incluye todas las filas de la tabla a la izquierda de la sentencia JOIN, incluso si no hay coincidencias en la tabla derecha
¿Qué comando SQL se utiliza para deshacer los cambios realizados en una transacción?
ROLLBACK
Qué tipo de datos en SQL se utiliza para almacenar grandes cantidades de datos binarios, como imágenes o vídeos?
BLOB
¿Qué tipo de anomalía ocurre cuando una transacción lee datos modificados por otra transacción que aún no ha hecho commit?
a) Lectura sucia
b) Lectura no repetible
c) Lectura fantasma
d) Actualización perdida
A
Lectura sucia
En una lectura no repetible, ¿qué sucede con los datos leídos dos veces en la misma transacción?
a) Los datos son idénticos
b) Los valores no coinciden
c) Aparecen nuevas filas
d) Los datos se eliminan
B
Los valores no coinciden
¿Cuál de las siguientes anomalías se caracteriza por obtener resultados diferentes al ejecutar dos consultas idénticas en la misma transacción?
a) Lectura sucia
b) Lectura no repetible
c) Lectura fantasma
d) Deadlock
C
Lectura fantasma
¿Qué problema puede ocurrir si se permite la lectura de datos no confirmados?
a) Bloqueo de la base de datos
b) Corrupción permanente de datos
c) Lectura de datos que podrían ser revertidos
d) Eliminación accidental de registros
C
Lectura de datos que podrían ser revertidos
La anomalía donde aparecen o desaparecen filas entre dos ejecuciones de la misma consulta en una transacción se conoce como:
a) Lectura sucia
b) Lectura no repetible
c) Lectura fantasma
d) Actualización perdida
C
Lectura fantasma
¿Qué nivel de aislamiento permite la lectura de datos no confirmados?
a) Read Committed
b) Repeatable Read
c) Serializable
d) Read Uncommitted
D
Read Uncommitted
En el nivel Read Committed, ¿cuándo se liberan los bloqueos de lectura?
a) Al final de la transacción
b) Inmediatamente después de la operación de lectura
c) Nunca se liberan
d) Cuando otra transacción lo solicita
B
Inmediatamente después de la operación de lectura
¿Qué nivel de aislamiento mantiene los bloqueos de lectura hasta el final de la transacción?
a) Read Uncommitted
b) Read Committed
c) Repeatable Read
d) Ninguno de los anteriores
C
Repeatable Read
¿Cuál es el nivel de aislamiento más restrictivo que garantiza consistencia total?
a) Read Uncommitted
b) Read Committed
c) Repeatable Read
d) Serializable
D
Serializable
En el nivel Repeatable Read, ¿qué tipo de anomalía aún puede ocurrir?
a) Lecturas sucias
b) Lecturas no repetibles
c) Lecturas fantasma
d) Ninguna de las anteriores
C
Lecturas fantasma
¿Cuál es la diferencia entre un backup lógico y un backup físico en PostgreSQL?
Un backup lógico en PostgreSQL se realiza utilizando herramientas como pg-dump y pg_dumpall. Este tipo de backup exporta la estructura y los datos de la base de datos en formato SQL o en formato personalizado, lo que permite una restauración granular de objetos individuales.
Un backup físico, en cambio, implica copiar directamente los archivos de datos del sistema de archivos donde está almacenada la base de datos. Este tipo de backup es más rápido y eficiente para restauraciones completas y suele realizarse utilizando herramientas como pg_basebackup.
Cómo se realiza una restauración de una base de datos PostgreSQL utilizando un archivo de backup creado con pg-dump? (T)
La restauración de una base de datos PostgreSQL utilizando un archivo de backup creado con pg-dump se realiza con el comando psql. El comando sería:
psql nombre-db < fichero.bkp
Este comando importa el contenido del archivo fichero.bkp a la base de datos nombre-db.
¿Qué opción de pg-dump se utilizaría para realizar una copia de seguridad que incluya solo la estructura de la base de datos, sin los datos?
pg-dump -s nombre-db > estructura.bkp
La opción -s o –schema-only se utiliza con pg-dump para crear una copia de seguridad que incluya solo la estructura de la base de datos, es decir, las definiciones de tablas, índices, etc., sin incluir los datos.
¿Qué es un punto de recuperación (recovery point) y cómo se utiliza en PostgreSQL?
Un punto de recuperación (recovery point) en PostgreSQL se utiliza en el proceso de recuperación ante desastres. Es un marcador en el flujo de WAL (Write-Ahead Logging) que permite restaurar una base de datos a un estado específico en el tiempo. Se utilizan comandos como pg_rewind y configuraciones de recuperación en recovery.conf para especificar el punto de recuperación deseado.
Referente a los comandos DML del lenguaje SQL, señale la respuesta correcta:
a) DML es acrónimo de Data Manager Language.
b) Permiten crear nuevas bases de datos, añadiendo y eliminando elementos.
c) El comando TRUNCATE es un comando DML.
d) El comando SELECT es un comando DML.
D
El comando SELECT es un comando DML.
¿Cuál de los siguientes comandos pertenece al grupo de comandos DDL (Data Definition Language)?
a) SELECT
b) UPDATE
c) CREATE
d) INSERT
C
CREATE
¿Cuál es el propósito principal del comando UPDATE en SQL?
a) Modificar la estructura de la base de datos.
b) Modificar los datos existentes en una tabla.
c) Eliminar registros de una tabla.
d) Crear nuevas tablas en la base de datos.
B
Modificar los datos existentes en una tabla.
¿Qué tipo de comando SQL se utiliza para eliminar todos los registros de una tabla sin eliminar la estructura de la tabla?
a) DELETE
b) DROP
c) TRUNCATE
d) ALTER
C
TRUNCATE
¿Qué comando SQL se utiliza para insertar un nuevo registro en una tabla?
a) INSERT
b) UPDATE
c) DELETE
d) SELECT
A
INSERT
¿Cuál de los siguientes comandos SQL se utiliza para definir o modificar la estructura de una tabla (como agregar o eliminar columnas)?
a) ALTER
b) UPDATE
c) SELECT
d) INSERT
A
ALTER
¿Qué comando SQL se usa para eliminar completamente una tabla, incluida su estructura y todos sus datos?
a) DROP
b) DELETE
c) TRUNCATE
d) REMOVE
A
DROP
¿Qué comando SQL se utiliza para obtener todos los registros de una tabla?
a) SHOW
b) SELECT *
c) GET
d) FETCH ALL
B
SELECT *
¿Qué tipo de comando SQL se utiliza para recuperar datos de una base de datos sin modificarla?
a) DDL
b) DML
c) TCL
d) DCL
B
DML
¿Qué diferencia existe entre DELETE y TRUNCATE?
a) DELETE elimina todos los registros de la tabla y TRUNCATE elimina la tabla.
b) DELETE es más rápido que TRUNCATE porque no hace registro de las eliminaciones.
c) DELETE elimina los registros de una tabla y TRUNCATE elimina todos los registros de una tabla sin registrar las eliminaciones.
d) DELETE no se puede usar en tablas con claves foráneas, pero TRUNCATE sí.
C
DELETE elimina los registros de una tabla y TRUNCATE elimina todos los registros de una tabla sin registrar las eliminaciones.
¿Cuál de los siguientes comandos SQL se usa para devolver el control de transacciones en un sistema de bases de datos?
a) SELECT
b) INSERT
c) COMMIT
d) DELETE
C
COMMIT
Referente al comando DROP de SQL, es correcto decir:
a) Es un comando DCL.
b) Puede ser ejecutado por disparadores (triggers).
c) Se utiliza para eliminar la estructura de una tabla junto con cualquier dato almacenado en ella.
d) Utiliza WHERE para condiciones de filtrado.
C
Se utiliza para eliminar la estructura de una tabla junto con cualquier dato almacenado en ella.
¿Cuál de los siguientes comandos SQL se utiliza para modificar la estructura de una tabla, como agregar una nueva columna?
a) UPDATE
b) ALTER
c) SELECT
d) DROP
B
ALTER
¿Qué comando SQL se utiliza para eliminar un registro específico de una tabla en base a una condición?
a) TRUNCATE
b) DROP
c) DELETE
d) SELECT
C
DELETE
¿Cuál es la principal diferencia entre el comando DELETE y TRUNCATE?
a) DELETE elimina registros de una tabla sin registrar las eliminaciones, mientras que TRUNCATE no elimina registros.
b) DELETE es más rápido que TRUNCATE porque no registra las eliminaciones.
c) TRUNCATE elimina los registros de una tabla y DELETE elimina la tabla.
d) DELETE elimina registros de forma controlada y permite el uso de WHERE, mientras que TRUNCATE elimina todos los registros sin permitir el uso de WHERE.
D
DELETE elimina registros de forma controlada y permite el uso de WHERE, mientras que TRUNCATE elimina todos los registros sin permitir el uso de WHERE.
¿Qué tipo de comando SQL se utiliza para otorgar permisos a los usuarios en una base de datos?
a) DML
b) DDL
c) TCL
d) DCL
D
DCL
¿Cuál de los siguientes comandos SQL se utiliza para restablecer los permisos de los usuarios en una base de datos?
a) GRANT
b) REVOKE
c) DROP
d) SELECT
B
REVOKE
¿Qué hace el comando COMMIT en SQL?
a) Revierte los cambios realizados en la base de datos.
b) Confirma y guarda de manera permanente los cambios realizados en la transacción.
c) Deshace la última transacción.
d) Inicia una nueva transacción.
B
Confirma y guarda de manera permanente los cambios realizados en la transacción.
¿Qué comando SQL se utiliza para definir una vista en una base de datos?
a) CREATE
b) ALTER
c) INSERT
d) VIEW
A
CREATE
¿Qué comando SQL se utiliza para eliminar todos los registros de una tabla, pero sin eliminar la estructura de la tabla?
a) DROP
b) TRUNCATE
c) DELETE
d) REMOVE
B
TRUNCATE
¿Qué comando SQL permite combinar los resultados de dos o más consultas en una sola?
a) JOIN
b) UNION
c) INTERSECT
d) EXCEPT
B
UNION
¿Para qué se utiliza el comando INDEX en SQL?
a) Para garantizar que los valores en una columna sean únicos.
b) Para crear una estructura de datos que mejora la velocidad de las consultas.
c) Para eliminar duplicados de los resultados de una consulta.
d) Para ordenar los resultados de una consulta.
B
Para crear una estructura de datos que mejora la velocidad de las consultas.
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.
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.
¿Cuál de las siguientes afirmaciones es cierta acerca de los triggers en bases de datos?
a) Un trigger siempre se ejecuta de forma manual por el usuario.
b) Los triggers pueden ser activados por eventos como INSERT, UPDATE o DELETE.
c) Los triggers solo pueden ser ejecutados después de que se haya completado una transacción.
d) Un trigger no puede realizar cambios en los datos de la tabla sobre la que se aplica.
B
Los triggers pueden ser activados por eventos como INSERT, UPDATE o DELETE.
¿Qué ocurre si se produce un error en un trigger durante la ejecución de una operación INSERT?
a) Solo se registra el error en un log, pero la operación no se cancela.
b) La operación INSERT continuará y los cambios se aplicarán incluso si el trigger falla.
c) La operación INSERT será cancelada automáticamente y no se realizarán cambios en la tabla.
d) El trigger se ejecutará nuevamente hasta que no se genere ningún error.
C
La operación INSERT será cancelada automáticamente y no se realizarán cambios en la tabla.
¿Cuál de los siguientes es un uso común de los triggers en bases de datos?
a) Validar datos antes de que sean insertados o actualizados en una tabla.
b) Crear índices para mejorar el rendimiento de las consultas.
c) Conceder permisos de acceso a los usuarios.
d) Definir las relaciones entre las tablas de la base de datos.
A
Validar datos antes de que sean insertados o actualizados en una tabla.
¿Qué significa que un trigger sea de tipo BEFORE?
a) El trigger se ejecuta después de que se complete la operación INSERT, UPDATE, o DELETE.
b) El trigger se ejecuta antes de que se complete la operación INSERT, UPDATE, o DELETE.
c) El trigger se ejecuta de forma asíncrona, independientemente de la operación.
d) El trigger solo se ejecuta si la operación INSERT, UPDATE, o DELETE tiene éxito.
B
El trigger se ejecuta antes de que se complete la operación INSERT, UPDATE, o DELETE.
¿Qué tipo de trigger se utilizaría si se quiere realizar una acción después de que una operación de UPDATE sobre una tabla haya sido completada?
a) BEFORE UPDATE
b) AFTER INSERT
c) AFTER UPDATE
d) BEFORE DELETE
C
AFTER UPDATE
¿Cuál es la principal ventaja de usar triggers en una base de datos?
a) Mejoran el rendimiento de las consultas SELECT.
b) Permiten que la base de datos ejecute acciones automáticamente en respuesta a ciertos eventos.
c) Ayudan a crear relaciones entre tablas de forma manual.
d) Permiten realizar copias de seguridad de las tablas automáticamente.
B
Permiten que la base de datos ejecute acciones automáticamente en respuesta a ciertos eventos.
¿Cuál de los siguientes eventos NO puede ser asociado a un trigger en la mayoría de las bases de datos?
a) INSERT
b) UPDATE
c) DELETE
d) SELECT
D
SELECT
¿Cuál de los siguientes es un posible problema al usar triggers en bases de datos?
a) Los triggers no pueden acceder a los datos de la tabla sobre la que se activan.
b) Los triggers pueden hacer que las operaciones en la base de datos se ralenticen si se usan excesivamente.
c) Los triggers siempre deben ejecutarse de manera sincrónica, lo que aumenta el rendimiento.
d) Los triggers no pueden interactuar con otras tablas de la base de datos.
B
Los triggers pueden hacer que las operaciones en la base de datos se ralenticen si se usan excesivamente.
¿Qué sucede si un trigger se activa en una transacción y causa un error?
a) El trigger se reintenta automáticamente hasta que no ocurra ningún error.
b) La transacción completa se deshace (rollback) y se cancelan los cambios.
c) El trigger se ignora, pero la transacción se completa.
d) El error solo afecta a la ejecución del trigger, pero no a la operación original.
B
La transacción completa se deshace (rollback) y se cancelan los cambios.
¿Cuál de los siguientes tipos de triggers podría utilizarse para registrar un log de todas las actualizaciones realizadas en una tabla?
a) BEFORE UPDATE
b) AFTER INSERT
c) AFTER UPDATE
d) AFTER DELETE
C
AFTER UPDATE
Las órdenes ‘SELECT’ y ‘UPDATE’ se definen mediante el lenguaje…
A) DCL
B) DDL
C) TCL
D) DML
D
DML
¿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’);
D
INSERT INTO CuerpoBecado (Codigo, Denominacion) VALUES (‘TAI’, ‘Técnico Auxiliar de Informática’);
¿Cuál es la sentencia SQL correcta para actualizar un registro en la tabla “Empleados” donde el “ID” sea 5?
a) UPDATE Empleados SET Nombre = ‘Juan’ WHERE ID = 5;
b) MODIFY Empleados SET Nombre = ‘Juan’ WHERE ID = 5;
c) CHANGE Empleados SET Nombre = ‘Juan’ WHERE ID = 5;
d) UPDATE Empleados SET Nombre: ‘Juan’ WHERE ID = 5;
A
UPDATE Empleados SET Nombre = ‘Juan’ WHERE ID = 5;
¿Qué sentencia SQL se usa para eliminar todos los registros de la tabla “Clientes” sin eliminar la estructura de la tabla?
a) DELETE FROM Clientes;
b) DROP TABLE Clientes;
c) REMOVE FROM Clientes;
d) TRUNCATE TABLE Clientes;
D
TRUNCATE TABLE Clientes;
¿Qué cláusula se utiliza en una consulta SQL para ordenar los resultados de una tabla?
a) GROUP BY
b) ORDER BY
c) SORT BY
d) ARRANGE BY
B
ORDER BY
¿Cómo puedes evitar la duplicación de valores en una columna específica cuando se realiza una consulta?
a) SELECT DISTINCT columna FROM tabla;
b) SELECT UNIQUE columna FROM tabla;
c) SELECT NO_DUPLICATES columna FROM tabla;
d) SELECT DIFFERENT columna FROM tabla;
A
SELECT DISTINCT columna FROM tabla;
¿Cuál es la función SQL que se utiliza para contar el número de filas en una tabla?
a) COUNT()
b) SUM()
c) TOTAL()
d) NUMBER()
A
COUNT()
Se desea añadir una tabla “Subsanacion” con las columnas numéricas IdSubsanacion e IdSolicitudBeca y la columna alfanumérica de 2000 caracteres TextoFundamento. ¿Cuál de las siguientes sentencias sería la correcta?
a) CREATE TABLE Subsanacion (IdSubsanacion bigint, IdSolicitudBeca bigint, TextoFundamento varchar(2000));
b) CREATE Subsanacion (IdSubsanacion bigint, IdSolicitudBeca bigint, TextoFundamento varchar(2000));
c) CREATE NEW TABLE Subsanacion (IdSubsanacion bigint, IdSolicitudBeca bigint, TextoFundamento varchar(2000));
d) CREATE TABLE Subsanacion AS (IdSubsanacion bigint, IdSolicitudBeca bigint, TextoFundamento varchar(2000));
A
CREATE TABLE Subsanacion (IdSubsanacion bigint, IdSolicitudBeca bigint, TextoFundamento varchar(2000));
¿Cuál de las siguientes sentencias se usa para eliminar una tabla de la base de datos?
a) DROP TABLE
b) DELETE TABLE
c) REMOVE TABLE
d) TRUNCATE TABLE
A
DROP TABLE
¿Cómo puedes agregar una columna llamada “FechaNacimiento” de tipo DATE a la tabla “Persona”?
a) ALTER TABLE Persona ADD FechaNacimiento DATE;
b) ALTER TABLE Persona MODIFY FechaNacimiento DATE;
c) ADD COLUMN FechaNacimiento DATE TO Persona;
d) ALTER COLUMN Persona ADD FechaNacimiento DATE;
A
ALTER TABLE Persona ADD FechaNacimiento DATE;
¿Qué tipo de dato usarías en una columna para almacenar valores decimales con precisión de hasta 10 dígitos en total, y 2 decimales?
a) INTEGER
b) DECIMAL(10,2)
c) FLOAT(10,2)
d) VARCHAR(10,2)
B
DECIMAL(10,2)
¿Qué comando se utiliza para modificar los datos existentes en una tabla en SQL?
a) CHANGE
b) UPDATE
c) ALTER
d) MODIFY
B
UPDATE
¿Cómo se crea una clave primaria en una tabla llamada “Usuarios” para la columna “IdUsuario”?
a) CREATE TABLE Usuarios (IdUsuario INT PRIMARY KEY);
b) ALTER TABLE Usuarios ADD PRIMARY KEY(IdUsuario);
c) CREATE PRIMARY KEY(IdUsuario) ON Usuarios;
d) CREATE TABLE Usuarios (IdUsuario INT, PRIMARY KEY(IdUsuario));
A
CREATE TABLE Usuarios (IdUsuario INT PRIMARY KEY);
Se espera un alto volumen de concurrencia en el sistema. ¿Qué nivel de aislamiento de base de datos debería configurar para que no se produzcan lecturas sucias ni lecturas no repetibles, pero sí lecturas fantasmas?
a) Serializable.
b) Read committed.
c) Read uncommited.
d) Repeatable read.
D
Repeatable read.
¿Qué nivel de aislamiento en una base de datos garantiza que no haya lecturas sucias, lecturas no repetibles ni lecturas fantasmas, pero puede generar un mayor tiempo de espera debido a los bloqueos más estrictos?
a) Read committed
b) Serializable
c) Repeatable read
d) Read uncommitted
B
Serializable
¿Cuál de los siguientes niveles de aislamiento permite que una transacción lea datos de otras transacciones no confirmadas, lo que puede producir lecturas sucias?
a) Serializable
b) Read uncommitted
c) Repeatable read
d) Read committed
B
Read uncommitted
¿En qué nivel de aislamiento es posible que una transacción lea datos que se han modificado por otra transacción, pero que aún no han sido confirmados (commit)?
a) Serializable
b) Repeatable read
c) Read uncommitted
d) Read committed
D
Read committed
¿Qué tipo de anomalía puede ocurrir en el nivel de aislamiento “Repeatable read”?
a) Lecturas sucias
b) Lecturas no repetibles
c) Lecturas fantasmas
d) Todos los anteriores
C
Lecturas fantasmas
Si se desea un alto rendimiento en un sistema de bases de datos, pero se pueden aceptar algunas inconsistencias menores (como lecturas no repetibles), ¿qué nivel de aislamiento sería el más adecuado?
a) Serializable
b) Read committed
c) Read uncommitted
d) Repeatable read
B
Read committed
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’));
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’))
¿Cómo obtendrías los registros de la tabla SolicitudBeca donde el campo AñoConvocatoria sea 2024 y el IdInteresado coincida con un valor específico, usando un JOIN entre las tablas SolicitudBeca e Interesado?
a) SELECT * FROM SolicitudBeca JOIN Interesado ON SolicitudBeca.IdInteresado = Interesado.IdInteresado WHERE AñoConvocatoria = 2024 AND IdInteresado = ‘12345’
b) SELECT * FROM SolicitudBeca INNER JOIN Interesado ON SolicitudBeca.IdInteresado = Interesado.IdInteresado WHERE AñoConvocatoria = 2024
c) SELECT * FROM SolicitudBeca LEFT JOIN Interesado ON SolicitudBeca.IdInteresado = Interesado.IdInteresado WHERE AñoConvocatoria = 2024 AND Interesado.IdInteresado = ‘12345’
d) SELECT * FROM SolicitudBeca WHERE AñoConvocatoria = 2024 AND IdInteresado = (SELECT IdInteresado FROM Interesado WHERE DocumentoIdentidad = ‘12345’)
A
SELECT * FROM SolicitudBeca JOIN Interesado ON SolicitudBeca.IdInteresado = Interesado.IdInteresado WHERE AñoConvocatoria = 2024 AND IdInteresado = ‘12345’
¿Qué tipo de consulta SQL utilizarías para contar cuántos registros hay en la tabla FicheroAdjunto para una IdSolicitudBeca específica?
a) SELECT COUNT(*) FROM FicheroAdjunto WHERE IdSolicitudBeca = ‘123’
b) SELECT COUNT(IdSolicitudBeca) FROM FicheroAdjunto WHERE IdSolicitudBeca = ‘123’
c) SELECT COUNT(DISTINCT IdSolicitudBeca) FROM FicheroAdjunto WHERE IdSolicitudBeca = ‘123’
d) SELECT COUNT(*) FROM FicheroAdjunto GROUP BY IdSolicitudBeca HAVING IdSolicitudBeca = ‘123’
A
SELECT COUNT(*) FROM FicheroAdjunto WHERE IdSolicitudBeca = ‘123’
Si necesitas actualizar el campo TextoFundamento de la tabla Subsanacion para un IdSubsanacion específico, ¿qué consulta SQL usarías?
a) UPDATE Subsanacion SET TextoFundamento = ‘Nuevo Texto’ WHERE IdSubsanacion = 1
b) UPDATE Subsanacion SET TextoFundamento = ‘Nuevo Texto’ WHERE IdSolicitudBeca = 1
c) UPDATE Subsanacion SET TextoFundamento = ‘Nuevo Texto’ WHERE IdSubsanacion = (SELECT IdSubsanacion FROM SolicitudBeca WHERE IdSolicitudBeca = 1)
d) UPDATE Subsanacion SET TextoFundamento = ‘Nuevo Texto’ WHERE IdSubsanacion = ‘1’
A
UPDATE Subsanacion SET TextoFundamento = ‘Nuevo Texto’ WHERE IdSubsanacion = 1
¿Cómo obtendrías los registros de la tabla Interesado donde el campo DocumentoIdentidad sea igual a ‘00000000T’ y el Estado sea ‘Activo’?
a) SELECT * FROM Interesado WHERE DocumentoIdentidad = ‘00000000T’ AND Estado = ‘Activo’
b) SELECT * FROM Interesado WHERE DocumentoIdentidad LIKE ‘00000000T’ AND Estado = ‘Activo’
c) SELECT * FROM Interesado WHERE DocumentoIdentidad = ‘00000000T’ OR Estado = ‘Activo’
d) SELECT * FROM Interesado WHERE DocumentoIdentidad IN (‘00000000T’) AND Estado = ‘Activo’
A
SELECT * FROM Interesado WHERE DocumentoIdentidad = ‘00000000T’ AND Estado = ‘Activo’
¿Cómo eliminarías todos los registros de la tabla FicheroAdjunto que tienen un IdSolicitudBeca que no corresponde a una solicitud del año 2024?
a) DELETE FROM FicheroAdjunto WHERE IdSolicitudBeca NOT IN (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024)
b) DELETE FROM FicheroAdjunto WHERE IdSolicitudBeca NOT LIKE (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024)
c) DELETE FROM FicheroAdjunto WHERE IdSolicitudBeca NOT EXISTS (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024)
d) DELETE FROM FicheroAdjunto WHERE IdSolicitudBeca IS NULL
A
DELETE FROM FicheroAdjunto WHERE IdSolicitudBeca NOT IN (SELECT IdSolicitudBeca FROM SolicitudBeca WHERE AñoConvocatoria = 2024)
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.
D
Una vez que el evento se ha ejecutado hay que eliminarlo manualmente.
¿Qué comando se utiliza para eliminar un evento en SQL?
a) DELETE EVENT nombre_evento
b) DROP EVENT nombre_evento
c) REMOVE EVENT nombre_evento
d) ERASE EVENT nombre_evento
B
DROP EVENT nombre_evento
¿Cuál de las siguientes cláusulas se usa para establecer la frecuencia de ejecución de un evento en MySQL?
a) ON REPEAT
b) ON SCHEDULE
c) RECURRING
d) EXECUTE EVERY
B
ON SCHEDULE
¿Qué valor debe tener la opción ENABLE en un evento SQL para que este se ejecute automáticamente según lo programado?
a) TRUE
b) ENABLED
c) 1
d) DISABLED
A
TRUE
En SQL, ¿qué tipo de datos se puede utilizar en la programación de eventos para ejecutar una tarea a una hora específica?
a) DATE
b) TIME
c) DATETIME
d) YEAR
C
DATETIME
¿Qué sucede si un evento SQL se encuentra programado para ejecutarse mientras está en proceso de ejecución y no se ha completado?
a) El evento se ejecuta en paralelo sin problema.
b) El evento se omite hasta que se complete la ejecución anterior.
c) El evento se detiene y no se vuelve a ejecutar.
d) El evento crea un nuevo proceso de ejecución de manera indefinida.
B
El evento se omite hasta que se complete la ejecución anterior.
En SQL la instrucción DELETE pertenece al conjunto de instrucciones:
a) DML
b) DDL
c) PL/SQL
d) RQL
A
DML
¿A qué conjunto de instrucciones pertenece la instrucción CREATE en SQL?
a) DML
b) DDL
c) DCL
d) TCL
B
DDL
¿A qué conjunto de instrucciones pertenece la instrucción UPDATE en SQL?
a) DML
b) DDL
c) TCL
d) DCL
A
DML
¿Qué conjunto de instrucciones SQL incluye la instrucción GRANT?
a) DML
b) DDL
c) DCL
d) TCL
C
DCL
¿A qué conjunto de instrucciones pertenece la instrucción SELECT en SQL?
a) DML
b) DDL
c) DCL
d) TCL
A
DML
¿A qué conjunto de instrucciones pertenece la instrucción COMMIT en SQL?
a) DML
b) DDL
c) TCL
d) DCL
C
TCL
¿Cuál de las siguientes NO es una característica principal del lenguaje SQL?
a) Es un lenguaje de consulta estructurado.
b) Es un lenguaje de programación.
c) Permite la manipulación de datos en bases de datos.
d) Trabaja bajo el estándar ISO-9075.
B
Es un lenguaje de programación.
¿Qué tipo de programación introduce SQL/PSM en las bases de datos relacionales?
Programación procedural.
El comando TRUNCATE activa triggers y registra cada fila eliminada individualmente, verdadero o falso?
FALSO
TRUNCATE no activa triggers ni registra cada fila eliminada de manera individual
¿Cómo se llama el lenguaje procedimental diseñado por Oracle para su sistema de bases de datos?
a) Transact-SQL
b) SQL/PSM
c) PL/SQL
d) SQL Lite
C
PL/SQL
¿Cuál es el comando SQL para eliminar una base de datos?
DROP DATABASE.
Un comando ROLLBACK guarda el trabajo realizado dentro de una transacción en una base de datos, verdadero o falso?
FALSO
El comando COMMIT guarda el trabajo realizado, mientras que el comando ROLLBACK deshace los cambios
¿Cuál es la instrucción SQL para eliminar una tabla?
a) ALTER TABLE
b) DROP TABLE
c) CREATE TABLE
d) DELETE TABLE
B
DROP TABLE
¿Qué tipo de constraint asegura que una columna no pueda tener valores nulos?
NOT NULL.
Un trigger tipo “INSTEAD OF” ejecuta la operación en lugar de lanzar el trigger, verdadero o falso?
FALSO
Un trigger “INSTEAD OF” ejecuta el trigger en lugar de la operación
¿Cómo se realiza una restauración de una base de datos PostgreSQL utilizando un archivo de backup creado con pg_dump?
a) Usando el comando psql con la opción -f para cargar el archivo de backup en la base de datos.
b) Usando el comando pg_restore con la opción -d para restaurar la base de datos desde el archivo de backup.
c) Usando el comando pg_restore con la opción -c para crear un nuevo archivo de backup.
d) Usando el comando pg_dump con la opción -r para restaurar el archivo de backup en la base de datos.
B
Usando el comando pg_restore con la opción -d para restaurar la base de datos desde el archivo de backup.
¿Cuál de los siguientes comandos de PostgreSQL permite crear un archivo de backup de una base de datos?
a) pg_restore -f backup.sql database_name
b) pg_dump -f backup.sql database_name
c) psql -f backup.sql database_name
d) pg_backup -f backup.sql database_name
B
pg_dump -f backup.sql database_name
¿Cuál es el propósito principal de usar el comando pg_dump en PostgreSQL?
a) Restaurar una base de datos desde un archivo de backup.
b) Hacer un backup de una base de datos en un formato SQL o personalizado.
c) Ejecutar scripts SQL en una base de datos de destino.
d) Importar datos de una base de datos a otra.
B
Hacer un backup de una base de datos en un formato SQL o personalizado.
¿Cuál de las siguientes afirmaciones es correcta sobre el uso de psql en relación con los backups de PostgreSQL?
a) psql se utiliza para crear backups de bases de datos.
b) psql se utiliza para restaurar un archivo de backup SQL previamente creado con pg_dump.
c) psql crea archivos de backup en formato binario.
d) psql no puede ser usado en el proceso de restauración de backups.
B
psql se utiliza para restaurar un archivo de backup SQL previamente creado con pg_dump.
¿Cuál es la diferencia principal entre el uso de pg_dump y psql en el proceso de manejo de backups en PostgreSQL?
a) pg_dump se utiliza para restaurar backups, mientras que psql se usa para crear backups.
b) pg_dump se usa para crear backups, mientras que psql se usa para restaurar backups SQL generados con pg_dump.
c) Ambos comandos se utilizan para crear backups en diferentes formatos, pero no se pueden usar para restauraciones.
d) pg_dump y psql sirven para la misma función y se utilizan indistintamente en el proceso de backup y restauración.
B
pg_dump se usa para crear backups, mientras que psql se usa para restaurar backups SQL generados con pg_dump.
Cuándo es preferible usar psql en lugar de pg_restore para restaurar un backup de PostgreSQL?
a) Cuando el backup ha sido generado usando pg_dump en formato personalizado o tar.
b) Cuando el backup ha sido creado con pg_dump en formato SQL (texto plano).
c) Cuando el backup ha sido creado con pg_dump en formato binario.
d) Cuando el backup contiene solo los datos, sin la estructura de la base de datos.
B
Cuando el backup ha sido creado con pg_dump en formato SQL (texto plano).
¿Qué tipo de lenguaje es SQL?
a) Lenguaje de programación orientado a objetos.
b) Lenguaje de programación funcional.
c) Lenguaje de consulta estructurado.
d) Lenguaje de programación de propósito general.
C
Lenguaje de consulta estructurado.
Para crear una tabla llamada Usuario, ¿qué sentencia SQL debemos ejecutar?
a) ALTER TABLE Usuario (idUsuario bigint PRIMARY KEY, nombre varchar(255));
b) INSERT TABLE Usuario (idUsuario bigint PRIMARY KEY, nombre varchar(255));
c) CREATE TABLE Usuario (idUsuario bigint PRIMARY KEY, nombre varchar(255));
d) DROP TABLE Usuario (idUsuario bigint PRIMARY KEY, nombre varchar(255));
C
CREATE TABLE Usuario (idUsuario bigint PRIMARY KEY, nombre varchar(255));
¿Qué sentencia SQL se utiliza para modificar la estructura de una tabla existente, como agregar una nueva columna?
a) CREATE TABLE
b) ALTER TABLE
c) DROP TABLE
d) INSERT INTO
B
ALTER TABLE
Si quieres eliminar una fila específica de una tabla llamada Empleado donde el idEmpleado es 10, ¿qué sentencia SQL deberías ejecutar?
a) DELETE FROM Empleado WHERE idEmpleado = 10;
b) REMOVE FROM Empleado WHERE idEmpleado = 10;
c) DROP FROM Empleado WHERE idEmpleado = 10;
d) REMOVE Empleado WHERE idEmpleado = 10;
A
DELETE FROM Empleado WHERE idEmpleado = 10;
¿Cuál de las siguientes sentencias SQL es utilizada para insertar nuevos datos en una tabla?
a) ADD INTO Empleado (idEmpleado, nombre) VALUES (1, ‘Carlos’);
b) INSERT INTO Empleado (idEmpleado, nombre) VALUES (1, ‘Carlos’);
c) INSERT INTO VALUES (idEmpleado, nombre) (1, ‘Carlos’);
d) CREATE INTO Empleado (idEmpleado, nombre) VALUES (1, ‘Carlos’);
B
INSERT INTO Empleado (idEmpleado, nombre) VALUES (1, ‘Carlos’);
¿Qué sentencia SQL te permite eliminar completamente una tabla llamada Producto de la base de datos?
a) DELETE TABLE Producto;
b) REMOVE TABLE Producto;
c) DROP TABLE Producto;
d) REMOVE Producto;
C
DROP TABLE Producto;
¿Cuál es la sentencia correcta para modificar los datos de una columna llamada salario en una tabla Empleado?
a) UPDATE Empleado SET salario = 3000 WHERE idEmpleado = 1;
b) MODIFY Empleado SET salario = 3000 WHERE idEmpleado = 1;
c) ALTER Empleado SET salario = 3000 WHERE idEmpleado = 1;
d) CHANGE Empleado SET salario = 3000 WHERE idEmpleado = 1;
A
UPDATE Empleado SET salario = 3000 WHERE idEmpleado = 1;
Si fuese el motor de Base de Datos ORACLE, indique cuál de los siguientes es un lenguaje de procedimiento cuya sintaxis permite insertar sentencias SQL y se almacena compilado dentro de la base de datos:
a) TRANSACT SQL
b) PL/SQL
c) FORTRAN
d) COBOL
B
PL/SQL
¿Cuál de los siguientes lenguajes de procedimientos es utilizado por el motor de base de datos MySQL para la creación de procedimientos almacenados y funciones?
a) PL/SQL
b) Transact-SQL
c) PL/pgSQL
d) SQL/PSM
D
SQL/PSM
En Oracle, ¿cómo se llama el bloque de código que se utiliza para agrupar sentencias SQL y lógica procedural en PL/SQL?
a) Procedure
b) Trigger
c) Block
d) Function
C
Block
¿Qué tipo de lenguaje es SQL?
a) Lenguaje de programación procedural
b) Lenguaje de consulta estructurada
c) Lenguaje de programación orientado a objetos
d) Lenguaje de programación funcional
B
Lenguaje de consulta estructurada
¿Cuál es la característica principal de un trigger en una base de datos?
a) Permite ejecutar un conjunto de instrucciones en la base de datos cuando se produce un evento específico.
b) Se utiliza para realizar un respaldo de los datos.
c) Se usa para crear relaciones entre tablas.
d) Es una técnica para mejorar el rendimiento de las consultas.
A
Permite ejecutar un conjunto de instrucciones en la base de datos cuando se produce un evento específico.
¿Qué sentencia SQL se usa para crear un índice en una tabla en Oracle?
a) CREATE INDEX
b) CREATE TABLE
c) CREATE PROCEDURE
d) CREATE TRIGGER
A
CREATE INDEX
En nuestra aplicación Java, ¿qué paquetes usaríamos para establecer la conexión a la base de datos de NOTIFICACION?
a) java.database
b) javax.naming y javax.sql
c) javax.io y javax.servlet
d) javax.servlet
B
javax.naming y javax.sql
¿Qué clase de Java se utiliza para obtener una conexión a una base de datos utilizando JDBC?
a) java.sql.Connection
b) javax.naming.Context
c) javax.sql.DataSource
d) java.sql.DriverManager
D
java.sql.DriverManager
¿Qué clase se usa para establecer una conexión con una base de datos utilizando un DataSource en lugar de DriverManager?
a) java.sql.Statement
b) javax.sql.DataSource
c) java.sql.ResultSet
d) javax.naming.InitialContext
B
javax.sql.DataSource
¿Cuál es la principal diferencia entre Statement y PreparedStatement en Java JDBC?
a) Statement se usa para consultas predefinidas y PreparedStatement para consultas dinámicas.
b) Statement es más rápido que PreparedStatement.
c) PreparedStatement se usa para consultas con parámetros y Statement para consultas sin parámetros.
d) No hay diferencia, ambos realizan lo mismo.
C
PreparedStatement se usa para consultas con parámetros y Statement para consultas sin parámetros.
¿Qué paquete de Java es necesario para trabajar con excepciones relacionadas con JDBC, como SQLException?
a) java.util
b) java.io
c) java.sql
d) javax.naming
C
java.sql
¿Qué clase en Java se utiliza para representar los resultados de una consulta SQL?
a) java.sql.Connection
b) java.sql.Statement
c) java.sql.ResultSet
d) javax.sql.DataSource
C
java.sql.ResultSet
El estándar ANSI-SQL especifica las cláusulas JOIN:
A) INNER, LEFT / RIGHT / BOTH [OUTER] y ACROSS
B) INNER, LEFT / RIGHT / FULL [OUTER] y CROSS
C) JOIN, LEFT / RIGHT [INNER], COMPLETE y CROSS
D) INSIDE, OUTSIDE y LEFT / RIGHT /FULL [OUTER]
B
INNER, LEFT / RIGHT / FULL [OUTER] y CROSS
De acuerdo con las tablas A (columnas A1 y A2) y B (columnas B1 y B2), ¿cuál será el resultado en ANSI SQL de la siguiente sentencia?
SELECT A., B. FROM A FULL OUTER JOIN B ON A.A1 = B.B1
a) FULL OUTER JOIN no existe en la sintaxis SQL.
b) No mostrará ningún resultado. Esta condición no se puede cumplir.
c) Mostrará solo las filas en las que el valor de la columna A1 sea igual que el de la columna B1.
d) Mostrará todas las filas de las dos tablas.
D
Mostrará todas las filas de las dos tablas.
¿Cuál será el resultado de la siguiente sentencia SQL?
SELECT A., B.
FROM A
LEFT JOIN B ON A.A1 = B.B1;
a) Mostrará solo las filas donde A.A1 sea igual a B.B1.
b) Mostrará todas las filas de la tabla A, incluso si no hay coincidencia con B, pero solo las filas correspondientes de B.
c) Mostrará todas las filas de la tabla B, pero solo las filas correspondientes de A.
d) No mostrará ninguna fila.
B
Mostrará todas las filas de la tabla A, incluso si no hay coincidencia con B, pero solo las filas correspondientes de B.
¿Qué tipo de JOIN se debe usar para obtener solo las filas que tienen coincidencias en ambas tablas?
a) INNER JOIN
b) LEFT JOIN
c) FULL OUTER JOIN
d) RIGHT JOIN
A
INNER JOIN
Si se ejecuta la siguiente consulta:
SELECT *
FROM A
RIGHT JOIN B ON A.A1 = B.B1;
¿Qué filas se devolverán?
a) Solo las filas donde A.A1 = B.B1.
b) Todas las filas de la tabla A y solo las filas correspondientes de B.
c) Todas las filas de la tabla B, con NULL en las columnas de A cuando no haya coincidencia.
d) Todas las filas de la tabla A, con NULL en las columnas de B cuando no haya coincidencia.
C
Todas las filas de la tabla B, con NULL en las columnas de A cuando no haya coincidencia.
¿Qué hará la siguiente consulta?
SELECT A.A1, B.B1
FROM A
INNER JOIN B ON A.A1 = B.B1;
a) Devolverá todos los valores de A.A1 y B.B1, incluso si no hay coincidencia.
b) Devolverá solo las filas en las que A.A1 = B.B1.
c) Devolverá todas las filas de A, con NULL en las columnas de B si no hay coincidencia.
d) Devolverá todas las filas de B, con NULL en las columnas de A si no hay coincidencia.
B
Devolverá solo las filas en las que A.A1 = B.B1.
¿Cuál de los siguientes tipos de JOIN devolvería el mismo conjunto de resultados que un FULL OUTER JOIN en una consulta SQL?
a) LEFT JOIN + RIGHT JOIN
b) INNER JOIN + LEFT JOIN
c) RIGHT JOIN + INNER JOIN
d) LEFT JOIN + FULL JOIN
A
LEFT JOIN + RIGHT JOIN