Oposiciones

SQL, procedimientos almacenados y disparadores — Test de Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado

Test gratuito de 30 preguntas de Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado, con la explicación justificada de cada respuesta. Responde las preguntas y envía el test para ver tu resultado: no necesitas registrarte.

0 / 30 respondidas00:00
Pregunta 1

¿Cuál de las siguientes sentencias DDL se utiliza para crear una nueva tabla en una base de datos?

  • ACREATE TABLE
  • BCREATE DATABASE
  • CCREATE INDEX
  • DCREATE VIEW
Pregunta 2

En una consulta SELECT que recupera datos de una tabla, ¿cuál de las siguientes cláusulas es obligatoria?

  • AWHERE
  • BFROM
  • CGROUP BY
  • DORDER BY
Pregunta 3

¿Qué comando DCL se utiliza para revocar permisos previamente concedidos a un usuario?

  • AGRANT
  • BDENY
  • CREVOKE
  • DREMOVE
Pregunta 4

¿Qué tipo de JOIN devuelve todos los registros de ambas tablas, combinando los coincidentes y rellenando con NULLs donde no hay coincidencia?

  • AINNER JOIN
  • BLEFT JOIN
  • CRIGHT JOIN
  • DFULL OUTER JOIN
Pregunta 5

¿Qué operador se utiliza en una subconsulta para comprobar si existe algún resultado en la subconsulta?

  • AEXISTS
  • BIN
  • CANY
  • DALL
Pregunta 6

¿Qué característica de una vista asegura que las modificaciones a través de la vista no puedan violar la condición definida en la misma?

  • AWITH READ ONLY
  • BWITH CHECK OPTION
  • CWITH LOCAL CHECK
  • DWITH CASCADE CHECK
Pregunta 7

En SQL, ¿cuál de las siguientes sentencias se utiliza para crear un procedimiento almacenado?

  • ACREATE FUNCTION
  • BCREATE TRIGGER
  • CCREATE PROCEDURE
  • DCREATE VIEW
Pregunta 8

¿Cuál es la principal diferencia entre una función y un procedimiento almacenado en SQL?

  • ALas funciones no pueden tener parámetros de entrada.
  • BLos procedimientos no pueden ejecutar consultas SELECT.
  • CLas funciones se llaman con la sentencia CALL.
  • DLas funciones siempre devuelven un valor, mientras que los procedimientos pueden no hacerlo.
Pregunta 9

En un trigger, ¿qué palabras clave se utilizan para referirse a los valores antiguos y nuevos de una fila en MySQL/PostgreSQL?

  • AOLD y NEW
  • BBEFORE y AFTER
  • CTHEN y ELSE
  • DTRIGGER y EVENT
Pregunta 10

En PL/SQL, ¿cuál de las siguientes sentencias se utiliza para abrir un cursor declarado?

  • AFETCH
  • BOPEN
  • CDECLARE
  • DLOOP
Pregunta 11

¿Qué sentencia se utiliza para confirmar permanentemente los cambios realizados en una transacción?

  • AROLLBACK
  • BSAVEPOINT
  • CCOMMIT
  • DEND TRANSACTION
Pregunta 12

¿Cuál es la sintaxis correcta para agregar una nueva columna 'telefono' de tipo VARCHAR(20) a una tabla 'clientes'?

  • AALTER TABLE clientes INSERT COLUMN telefono VARCHAR(20);
  • BMODIFY TABLE clientes ADD telefono VARCHAR(20);
  • CCHANGE TABLE clientes ADD telefono VARCHAR(20);
  • DALTER TABLE clientes ADD telefono VARCHAR(20);
Pregunta 13

¿Cuál de las siguientes es una sintaxis válida para actualizar una tabla 'empleados' usando un JOIN con 'departamentos' en SQL Server?

  • AUPDATE empleados SET salario = d.presupuesto FROM empleados e INNER JOIN departamentos d ON e.dep_id = d.id;
  • BUPDATE empleados e SET e.salario = d.presupuesto JOIN departamentos d ON e.dep_id = d.id;
  • CUPDATE FROM empleados e JOIN departamentos d ON e.dep_id = d.id SET e.salario = d.presupuesto;
  • DUPDATE empleados SET salario = presupuesto WHERE empleados.dep_id = departamentos.id;
Pregunta 14

¿Es posible conceder permisos GRANT sobre columnas específicas de una tabla?

  • ANo, solo se pueden conceder permisos a nivel de tabla.
  • BSí, usando GRANT SELECT(columna) ON tabla TO usuario;
  • CSí, pero solo para el privilegio UPDATE.
  • DSí, pero solo a través de vistas.
Pregunta 15

¿Qué tipo de JOIN devuelve únicamente los registros que tienen coincidencias en ambas tablas?

  • ALEFT JOIN
  • BRIGHT JOIN
  • CINNER JOIN
  • DFULL JOIN
Pregunta 16

Una subconsulta correlacionada es aquella que:

  • ASe ejecuta una sola vez independientemente de la consulta externa.
  • BNo referencia columnas de la consulta externa.
  • CSiempre devuelve un solo valor escalar.
  • DSe ejecuta una vez para cada fila de la consulta externa.
Pregunta 17

¿Qué tipo de vista almacena físicamente los datos de la consulta y se puede actualizar periódicamente?

  • AVista materializada
  • BVista indexada
  • CVista temporal
  • DVista en línea
Pregunta 18

En un procedimiento almacenado, ¿qué tipo de parámetro permite pasar un valor al procedimiento y también recibir un valor modificado desde el mismo?

  • AIN
  • BINOUT
  • COUT
  • DRETURN
Pregunta 19

Una función determinística en SQL es aquella que:

  • APuede devolver resultados diferentes en cada llamada incluso con los mismos argumentos.
  • BSolo puede ser utilizada en procedimientos almacenados.
  • CSiempre devuelve el mismo resultado para los mismos argumentos.
  • DNo puede contener sentencias SQL.
Pregunta 20

En un trigger que se ejecuta antes de una actualización (BEFORE UPDATE), ¿es posible modificar el valor de NEW.columna?

  • ANo, nunca se pueden modificar los valores en un trigger.
  • BSolo se puede modificar OLD.columna.
  • CSolo en triggers AFTER UPDATE.
  • DSí, en algunos SGBD como MySQL se puede modificar NEW.columna.
Pregunta 21

En PL/SQL, ¿qué atributo de un cursor devuelve TRUE si la última operación FETCH recuperó una fila?

  • A%FOUND
  • B%NOTFOUND
  • C%ROWCOUNT
  • D%ISOPEN
Pregunta 22

¿Qué sentencia se utiliza para crear un punto de guardado dentro de una transacción al que se puede deshacer posteriormente?

  • ASAVE TRANSACTION
  • BSAVEPOINT
  • CCHECKPOINT
  • DROLLBACK TO
Pregunta 23

¿Cuál de las siguientes sentencias elimina todos los registros de una tabla pero mantiene su estructura, y no se puede deshacer?

  • ADELETE FROM tabla;
  • BDROP TABLE tabla;
  • CTRUNCATE TABLE tabla;
  • DREMOVE TABLE tabla;
Pregunta 24

¿Es posible insertar múltiples filas en una tabla utilizando el resultado de una consulta SELECT?

  • ANo, INSERT solo permite valores explícitos con VALUES.
  • BSí, pero solo si la consulta devuelve una única fila.
  • CSí, pero solo en tablas temporales.
  • DSí, con la sintaxis INSERT INTO tabla SELECT ...;
Pregunta 25

¿Qué comando DCL se utiliza para crear un rol en la base de datos?

  • ACREATE ROLE
  • BCREATE USER
  • CGRANT ROLE
  • DDEFINE ROLE
Pregunta 26

Un self join es:

  • AUna join de una tabla consigo misma.
  • BUna join entre dos tablas con la misma estructura.
  • CUna join que usa la misma columna en ambas tablas.
  • DUna join automática que no requiere condición ON.
Pregunta 27

¿En qué cláusula de una consulta SELECT se puede utilizar una subconsulta como si fuera una tabla?

  • AWHERE
  • BSELECT
  • CFROM
  • DHAVING
Pregunta 28

¿Cuál es la principal desventaja de una vista materializada frente a una vista estándar?

  • ANo se puede consultar con SELECT.
  • BNo admite actualizaciones directas.
  • CEs más lenta de consultar porque recalcula cada vez.
  • DOcupa espacio de almacenamiento.
Pregunta 29

En PL/SQL, ¿qué bloque se utiliza para capturar y manejar errores dentro de un procedimiento almacenado?

  • AEXCEPTION
  • BERROR
  • CCATCH
  • DFAIL
Pregunta 30

Si hay múltiples triggers definidos para el mismo evento en una tabla, ¿se puede especificar el orden de ejecución?

  • ANo, se ejecutan en orden aleatorio.
  • BDepende del SGBD; algunos permiten especificar prioridades.
  • CSiempre se ejecutan en orden de creación.
  • DSolo se permite un trigger por evento.
0 / 30 respondidas

Soluciones y explicaciones

Ver las 30 respuestas correctas y su explicación

Esta sección revela las respuestas correctas. Te recomendamos hacer el test antes de consultarla.

  • ¿Cuál de las siguientes sentencias DDL se utiliza para crear una nueva tabla en una base de datos?

    Respuesta correcta: CREATE TABLE

    La sentencia CREATE TABLE es un comando DDL que crea una nueva tabla definiendo sus columnas, tipos de datos y restricciones.

  • En una consulta SELECT que recupera datos de una tabla, ¿cuál de las siguientes cláusulas es obligatoria?

    Respuesta correcta: FROM

    La cláusula FROM es obligatoria en una consulta SELECT que referencia tablas, ya que especifica la tabla o tablas de las que se obtienen los datos.

  • ¿Qué comando DCL se utiliza para revocar permisos previamente concedidos a un usuario?

    Respuesta correcta: REVOKE

    El comando REVOKE se utiliza en SQL DCL para retirar privilegios previamente concedidos a un usuario o rol.

  • ¿Qué tipo de JOIN devuelve todos los registros de ambas tablas, combinando los coincidentes y rellenando con NULLs donde no hay coincidencia?

    Respuesta correcta: FULL OUTER JOIN

    Un FULL OUTER JOIN devuelve todos los registros de ambas tablas; donde hay coincidencia se combinan, y donde no, se rellenan con NULLs.

  • ¿Qué operador se utiliza en una subconsulta para comprobar si existe algún resultado en la subconsulta?

    Respuesta correcta: EXISTS

    El operador EXISTS se utiliza en subconsultas para verificar si la subconsulta devuelve al menos una fila.

  • ¿Qué característica de una vista asegura que las modificaciones a través de la vista no puedan violar la condición definida en la misma?

    Respuesta correcta: WITH CHECK OPTION

    La cláusula WITH CHECK OPTION en una vista asegura que todas las inserciones o actualizaciones realizadas a través de la vista cumplan la condición de la vista.

  • En SQL, ¿cuál de las siguientes sentencias se utiliza para crear un procedimiento almacenado?

    Respuesta correcta: CREATE PROCEDURE

    La sentencia CREATE PROCEDURE se utiliza para crear un procedimiento almacenado en la base de datos.

  • ¿Cuál es la principal diferencia entre una función y un procedimiento almacenado en SQL?

    Respuesta correcta: Las funciones siempre devuelven un valor, mientras que los procedimientos pueden no hacerlo.

    En SQL, una función debe devolver un valor, mientras que un procedimiento almacenado puede no devolverlo o devolver múltiples valores a través de parámetros OUT.

  • En un trigger, ¿qué palabras clave se utilizan para referirse a los valores antiguos y nuevos de una fila en MySQL/PostgreSQL?

    Respuesta correcta: OLD y NEW

    En triggers de MySQL y PostgreSQL, OLD y NEW son pseudo-registros que contienen los valores de la fila antes y después del evento que activa el trigger.

  • En PL/SQL, ¿cuál de las siguientes sentencias se utiliza para abrir un cursor declarado?

    Respuesta correcta: OPEN

    La sentencia OPEN se utiliza para abrir un cursor, permitiendo posteriormente la recuperación de filas con FETCH.

  • ¿Qué sentencia se utiliza para confirmar permanentemente los cambios realizados en una transacción?

    Respuesta correcta: COMMIT

    La sentencia COMMIT confirma todos los cambios realizados en la transacción actual, haciéndolos permanentes.

  • ¿Cuál es la sintaxis correcta para agregar una nueva columna 'telefono' de tipo VARCHAR(20) a una tabla 'clientes'?

    Respuesta correcta: ALTER TABLE clientes ADD telefono VARCHAR(20);

    La sentencia ALTER TABLE se utiliza para modificar la estructura de una tabla; para agregar una columna se utiliza la cláusula ADD seguida del nombre y tipo de dato.

  • ¿Cuál de las siguientes es una sintaxis válida para actualizar una tabla 'empleados' usando un JOIN con 'departamentos' en SQL Server?

    Respuesta correcta: UPDATE empleados SET salario = d.presupuesto FROM empleados e INNER JOIN departamentos d ON e.dep_id = d.id;

    En SQL Server, se puede realizar un UPDATE con JOIN utilizando la sintaxis UPDATE ... SET ... FROM ... JOIN ... ON.

  • ¿Es posible conceder permisos GRANT sobre columnas específicas de una tabla?

    Respuesta correcta: Sí, usando GRANT SELECT(columna) ON tabla TO usuario;

    El estándar SQL permite conceder privilegios a nivel de columna especificando la columna entre paréntesis después del privilegio, por ejemplo: GRANT SELECT (columna) ON tabla TO usuario.

  • ¿Qué tipo de JOIN devuelve únicamente los registros que tienen coincidencias en ambas tablas?

    Respuesta correcta: INNER JOIN

    Un INNER JOIN devuelve solo los registros que tienen coincidencias en ambas tablas involucradas.

  • Una subconsulta correlacionada es aquella que:

    Respuesta correcta: Se ejecuta una vez para cada fila de la consulta externa.

    Una subconsulta correlacionada referencia columnas de la consulta externa y se ejecuta una vez por cada fila procesada por la consulta externa.

  • ¿Qué tipo de vista almacena físicamente los datos de la consulta y se puede actualizar periódicamente?

    Respuesta correcta: Vista materializada

    Una vista materializada almacena el resultado de la consulta como datos físicos, que pueden ser actualizados mediante refresco.

  • En un procedimiento almacenado, ¿qué tipo de parámetro permite pasar un valor al procedimiento y también recibir un valor modificado desde el mismo?

    Respuesta correcta: INOUT

    Los parámetros INOUT permiten pasar un valor al procedimiento y recibir un valor modificado desde él, a diferencia de IN (solo entrada) y OUT (solo salida).

  • Una función determinística en SQL es aquella que:

    Respuesta correcta: Siempre devuelve el mismo resultado para los mismos argumentos.

    Una función determinística devuelve siempre el mismo resultado para los mismos valores de entrada, lo que permite su uso en índices y optimizaciones.

  • En un trigger que se ejecuta antes de una actualización (BEFORE UPDATE), ¿es posible modificar el valor de NEW.columna?

    Respuesta correcta: Sí, en algunos SGBD como MySQL se puede modificar NEW.columna.

    En triggers BEFORE UPDATE de MySQL y PostgreSQL, se puede modificar el valor de NEW.columna para cambiar el valor que se almacenará.

  • En PL/SQL, ¿qué atributo de un cursor devuelve TRUE si la última operación FETCH recuperó una fila?

    Respuesta correcta: %FOUND

    El atributo %FOUND de un cursor devuelve TRUE si la última operación FETCH recuperó una fila; en caso contrario, devuelve FALSE.

  • ¿Qué sentencia se utiliza para crear un punto de guardado dentro de una transacción al que se puede deshacer posteriormente?

    Respuesta correcta: SAVEPOINT

    La sentencia SAVEPOINT define un punto dentro de la transacción al que se puede volver mediante ROLLBACK TO SAVEPOINT.

  • ¿Cuál de las siguientes sentencias elimina todos los registros de una tabla pero mantiene su estructura, y no se puede deshacer?

    Respuesta correcta: TRUNCATE TABLE tabla;

    TRUNCATE TABLE elimina todos los registros de una tabla de forma eficiente, liberando espacio, y no se puede deshacer con ROLLBACK en la mayoría de los SGBD (aunque depende de la implementación).

  • ¿Es posible insertar múltiples filas en una tabla utilizando el resultado de una consulta SELECT?

    Respuesta correcta: Sí, con la sintaxis INSERT INTO tabla SELECT ...;

    La sentencia INSERT INTO ... SELECT permite insertar en una tabla los resultados de una consulta SELECT, pudiendo ser múltiples filas.

  • ¿Qué comando DCL se utiliza para crear un rol en la base de datos?

    Respuesta correcta: CREATE ROLE

    El comando CREATE ROLE se utiliza para crear un rol, al que posteriormente se le pueden asignar privilegios y usuarios.

  • Un self join es:

    Respuesta correcta: Una join entre dos tablas con la misma estructura.

    Un self join es una operación de join donde una tabla se une consigo misma, típicamente usando alias para diferenciar las instancias.

  • ¿En qué cláusula de una consulta SELECT se puede utilizar una subconsulta como si fuera una tabla?

    Respuesta correcta: FROM

    Una subconsulta se puede utilizar en la cláusula FROM como una tabla derivada, siempre que se le asigne un alias.

  • ¿Cuál es la principal desventaja de una vista materializada frente a una vista estándar?

    Respuesta correcta: Ocupa espacio de almacenamiento.

    Una vista materializada almacena físicamente los datos, por lo que consume espacio de almacenamiento, a diferencia de una vista estándar que solo almacena la definición.

  • En PL/SQL, ¿qué bloque se utiliza para capturar y manejar errores dentro de un procedimiento almacenado?

    Respuesta correcta: EXCEPTION

    En PL/SQL, el bloque EXCEPTION dentro de un procedimiento almacenado permite capturar y manejar errores que ocurran durante la ejecución.

  • Si hay múltiples triggers definidos para el mismo evento en una tabla, ¿se puede especificar el orden de ejecución?

    Respuesta correcta: Depende del SGBD; algunos permiten especificar prioridades.

    Algunos SGBD como MySQL permiten especificar el orden de ejecución de múltiples triggers para el mismo evento usando cláusulas como FOLLOWS o PRECEDES.