wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Fundamentos y conceptos generales de MySQL y DDL

Total questions: 100

Worksheet time: 50mins

Name
Class
Date
1.

MySQL es un motor de base de datos relacional. ¿En qué se diferencia de otros motores de bases de datos?

a)

Es de código abierto y utiliza el lenguaje SQL.

b)

No permite el uso de lenguaje SQL.

c)

Solo funciona en sistemas operativos Windows.

d)

No es adecuado para aplicaciones web.

2.

SQL es un lenguaje utilizado para gestionar bases de datos. ¿Cuál de las siguientes opciones describe correctamente los tipos de sentencias que incluye SQL?

a)

Sentencias de definición, manipulación y control de datos.

b)

Solo sentencias de definición de datos.

c)

Sentencias únicamente para crear tablas.

d)

Sentencias para diseñar interfaces gráficas.

3.

¿Cuál es la principal diferencia entre una base de datos relacional y una no relacional?

a)

Las bases de datos relacionales organizan los datos en tablas con relaciones, mientras que las no relacionales almacenan datos sin una estructura fija.

b)

Las bases de datos relacionales no permiten consultas complejas, mientras que las no relacionales sí.

c)

Las bases de datos no relacionales requieren SQL para acceder a los datos, mientras que las relacionales no.

d)

Las bases de datos relacionales solo se usan para grandes volúmenes de datos, mientras que las no relacionales para pequeños volúmenes.

4.

Una tabla está compuesta por varios elementos. ¿Cuál de los siguientes NO es un elemento de una tabla?

a)

Filas

b)

Columnas

c)

Celdas

d)

Gráficas

5.

Una fila (registro) y una columna (campo) en una base de datos se refieren a:

a)

Una fila almacena los datos de una entidad y una columna representa un atributo de esos datos.

b)

Una fila representa un atributo y una columna almacena los datos de una entidad.

c)

Ambas, fila y columna, almacenan atributos de diferentes entidades.

d)

Una fila y una columna son lo mismo en una base de datos.

6.

Una clave primaria (PRIMARY KEY) se utiliza para:

a)

Identificar de manera única cada registro en una tabla.

b)

Permitir duplicados en una columna.

c)

Relacionar dos tablas sin restricciones.

d)

Almacenar datos temporales en una base de datos.

7.

Una clave foránea (FOREIGN KEY) es:

a)

Un campo que identifica de manera única cada registro en una tabla.

b)

Un campo que se utiliza para establecer una relación entre dos tablas.

c)

Un tipo de dato que almacena imágenes en la base de datos.

d)

Un comando para eliminar registros duplicados en una tabla.

8.

¿Cuál de las siguientes opciones describe correctamente qué es una restricción (constraint) y cuáles son las más comunes en MySQL?

a)

Una restricción es una regla que limita los valores de una columna; las más comunes son PRIMARY KEY, FOREIGN KEY, UNIQUE y NOT NULL.

b)

Una restricción es un tipo de índice que mejora la velocidad de las consultas; las más comunes son INDEX y FULLTEXT.

c)

Una restricción es una función matemática aplicada a los datos; las más comunes son SUM y AVG.

d)

Una restricción es un comando para eliminar datos duplicados; las más comunes son DELETE y TRUNCATE.

9.

¿Cuál es la diferencia entre NULL y vacío ('')?

a)

NULL representa la ausencia de valor, mientras que vacío ('') es una cadena sin caracteres.

b)

NULL y vacío ('') significan lo mismo en todas las bases de datos.

c)

Vacío ('') indica un error, mientras que NULL es un valor predeterminado.

d)

NULL es un tipo de dato numérico, mientras que vacío ('') es un tipo de dato de texto.

10.

Un esquema en MySQL es:

a)

Una colección de tablas, vistas y otros objetos de base de datos.

b)

Un tipo de dato especial para almacenar imágenes.

c)

Un comando para eliminar registros duplicados.

d)

Una función para encriptar contraseñas.

11.

¿Cuál de las siguientes opciones describe correctamente qué es un motor de almacenamiento (storage engine) y menciona al menos dos ejemplos?

a)

Es un componente de un sistema de gestión de bases de datos que maneja cómo se almacenan, gestionan y recuperan los datos; ejemplos incluyen InnoDB y MyISAM.

b)

Es un software para crear interfaces gráficas; ejemplos incluyen SQLite y PostgreSQL.

c)

Es un tipo de hardware para almacenar datos; ejemplos incluyen SSD y HDD.

d)

Es un lenguaje de programación para bases de datos; ejemplos incluyen SQL y Python.

12.

¿Cuál de los siguientes es un tipo de dato en MySQL?

a)

VARCHAR

b)

ARRAY

c)

OBJECT

d)

SET

13.

¿Cuál es la diferencia principal entre CHAR y VARCHAR en bases de datos?

a)

CHAR almacena datos de longitud fija, mientras que VARCHAR almacena datos de longitud variable.

b)

CHAR almacena datos de longitud variable, mientras que VARCHAR almacena datos de longitud fija.

c)

CHAR y VARCHAR almacenan datos de longitud variable.

d)

CHAR y VARCHAR almacenan datos de longitud fija.

14.

¿Para qué sirve AUTO_INCREMENT y en qué tipo de columna se usa?

a)

Sirve para generar valores únicos automáticamente en una columna de tipo entero.

b)

Sirve para incrementar el tamaño de una columna de texto.

c)

Sirve para crear índices en columnas de tipo fecha.

d)

Sirve para duplicar los valores de una columna de tipo decimal.

15.

La normalización en bases de datos se refiere a:

a)

Un proceso para organizar los datos y reducir la redundancia, utilizando formas normales como 1FN, 2FN y 3FN.

b)

Un método para aumentar la redundancia en las tablas de la base de datos.

c)

Una técnica para eliminar todas las claves primarias de una base de datos.

d)

Un proceso para desorganizar los datos y dificultar las consultas.

16.

La desnormalización se utiliza en bases de datos para mejorar el rendimiento en consultas. ¿En qué caso podría ser útil desnormalizar una base de datos?

a)

Cuando se requiere mejorar la velocidad de consulta en grandes volúmenes de datos.

b)

Cuando se necesita reducir la redundancia de datos al máximo.

c)

Cuando se busca aumentar la integridad referencial.

d)

Cuando se quiere evitar cualquier duplicidad de información.

17.

Una vista (VIEW) en bases de datos se utiliza para:

a)

Almacenar datos permanentemente en la base de datos.

b)

Mostrar una representación virtual de datos de una o más tablas.

c)

Eliminar datos de la base de datos.

d)

Modificar la estructura física de las tablas.

18.

Un índice (INDEX) en bases de datos es:

a)

Una estructura que mejora la velocidad de las consultas al facilitar la búsqueda de datos.

b)

Un tipo de restricción que impide la duplicidad de registros.

c)

Un comando para eliminar datos de una tabla.

d)

Un formato de almacenamiento para archivos multimedia.

19.

El comando EXPLAIN se utiliza para:

a)

Mostrar el plan de ejecución de una consulta.

b)

Eliminar registros de una tabla.

c)

Actualizar los índices de una base de datos.

d)

Crear una nueva tabla en la base de datos.

20.

Una transacción es importante porque:

a)

Permite registrar y asegurar el intercambio de bienes o servicios.

b)

Es solo un proceso informal sin relevancia.

c)

No tiene impacto en la contabilidad de una empresa.

d)

Se utiliza únicamente para fines personales.

21.

¿Cuál es el comando correcto para crear una base de datos en MySQL?

a)

CREATE DATABASE nombre_base_de_datos;

b)

MAKE DATABASE nombre_base_de_datos;

c)

NEW DATABASE nombre_base_de_datos;

d)

INIT DATABASE nombre_base_de_datos;

22.

¿Cuál es el comando para eliminar una base de datos y qué precaución debes tomar?

a)

DROP DATABASE; asegurarse de tener una copia de seguridad.

b)

CREATE DATABASE; verificar los permisos.

c)

DELETE DATABASE; cerrar todas las conexiones.

d)

ALTER DATABASE; revisar los usuarios.

23.

Seleccionar una base de datos se realiza mediante el comando:

a)

SELECT DATABASE nombre;

b)

USE nombre;

c)

CHOOSE nombre;

d)

OPEN nombre;

24.

¿Cuál de las siguientes sentencias crea una tabla con una clave primaria y una clave foránea?

a)

CREATE TABLE alumnos (id INT PRIMARY KEY, curso_id INT, FOREIGN KEY (curso_id) REFERENCES cursos(id));

b)

CREATE TABLE alumnos (id INT, curso_id INT, PRIMARY KEY (curso_id));

c)

CREATE TABLE alumnos (id INT PRIMARY KEY, curso_id INT);

d)

CREATE TABLE alumnos (id INT, curso_id INT, FOREIGN KEY (id) REFERENCES cursos(id));

25.

¿Cuál es el comando SQL para agregar una columna a una tabla existente?

a)

ALTER TABLE nombre_tabla ADD nombre_columna tipo_dato;

b)

INSERT INTO nombre_tabla VALUES (nueva_columna);

c)

UPDATE nombre_tabla SET nombre_columna = valor;

d)

CREATE COLUMN nombre_columna ON nombre_tabla;

26.

¿Cuál es el comando para eliminar una columna de una tabla en SQL?

a)

ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;

b)

DELETE FROM nombre_tabla WHERE columna=valor;

c)

REMOVE COLUMN nombre_columna FROM nombre_tabla;

d)

DROP TABLE nombre_tabla;

27.

Selecciona la opción correcta para cambiar el tipo de dato de una columna.

a)

Usando el comando ALTER TABLE.

b)

Usando el comando SELECT.

c)

Usando el comando DROP COLUMN.

d)

Usando el comando INSERT INTO.

28.

¿Cuál es el comando correcto para renombrar una tabla en SQL?

a)

ALTER TABLE nombre_tabla RENAME TO nuevo_nombre;

b)

RENAME TABLE nombre_tabla TO nuevo_nombre;

c)

UPDATE TABLE nombre_tabla SET nombre = nuevo_nombre;

d)

CHANGE TABLE nombre_tabla TO nuevo_nombre;

29.

¿Cuál es la diferencia principal entre DROP TABLE y TRUNCATE TABLE en SQL?

a)

DROP TABLE elimina la tabla y su estructura, mientras que TRUNCATE TABLE solo elimina los datos pero mantiene la estructura.

b)

DROP TABLE solo elimina los datos, mientras que TRUNCATE TABLE elimina la tabla y su estructura.

c)

DROP TABLE elimina los datos y deja la estructura vacía, mientras que TRUNCATE TABLE elimina la estructura y los datos.

d)

DROP TABLE y TRUNCATE TABLE hacen exactamente lo mismo en SQL.

30.

¿Cuál de las siguientes opciones describe correctamente cómo se define una restricción UNIQUE en una base de datos?

a)

Permite que los valores en una columna sean únicos, sin duplicados.

b)

Permite que los valores en una columna sean nulos.

c)

Permite que los valores en una columna sean duplicados.

d)

Permite que los valores en una columna sean siempre positivos.

31.

¿Cuál es la forma correcta de definir una restricción CHECK en MySQL 8?

a)

CONSTRAINT nombre CHECK (condición)

b)

CHECK nombre (condición)

c)

RESTRICCIÓN CHECK (condición)

d)

CHECK (nombre, condición)

32.

¿Cómo se establece el motor de almacenamiento al crear una tabla?

a)

Mediante la cláusula ENGINE en la sentencia CREATE TABLE.

b)

Usando la función SET STORAGE ENGINE.

c)

Seleccionando el motor en el panel de configuración de la base de datos.

d)

Agregando el tipo de motor en la sentencia SELECT.

33.

¿Cuál es la forma correcta de especificar el conjunto de caracteres y la colación de una tabla en SQL?

a)

Mediante las cláusulas CHARACTER SET y COLLATE en la definición de la tabla.

b)

Usando la función SET CHARSET en la consulta.

c)

Definiendo los valores en el archivo de configuración del servidor.

d)

Agregando los parámetros en la instrucción SELECT.

34.

¿Cuál es la función de una TEMPORARY TABLE y cuándo se recomienda usarla?

a)

Se utiliza para almacenar datos temporales durante una sesión y se recomienda cuando se necesita manipular información de manera transitoria.

b)

Sirve para guardar datos permanentemente y se recomienda para almacenar registros históricos.

c)

Se usa para crear índices en tablas existentes y se recomienda para optimizar consultas.

d)

Se emplea para compartir datos entre diferentes bases de datos y se recomienda para migraciones de datos.

35.

¿Cuál es la sintaxis correcta para crear una tabla basada en el resultado de una consulta en SQL?

a)

CREATE TABLE nombre_tabla AS SELECT ...

b)

SELECT INTO nombre_tabla FROM ...

c)

CREATE nombre_tabla FROM SELECT ...

d)

INSERT INTO nombre_tabla SELECT ...

36.

¿Cuál es el comando SQL para agregar o quitar una restricción FOREIGN KEY?

a)

ALTER TABLE

b)

SELECT * FROM

c)

DROP DATABASE

d)

INSERT INTO

37.

¿Cómo se define DEFAULT en una columna y cuándo conviene hacerlo?

a)

DEFAULT se utiliza para asignar un valor por defecto a una columna cuando no se especifica uno al insertar datos, y conviene hacerlo para evitar valores nulos.

b)

DEFAULT se utiliza para eliminar una columna automáticamente si no se especifica un valor.

c)

DEFAULT se utiliza para crear una clave primaria en una columna.

d)

DEFAULT se utiliza para restringir los valores permitidos en una columna.

38.

¿Cuál es el propósito de crear un índice compuesto en una base de datos y cuándo se justifica su uso?

a)

Para mejorar el rendimiento de consultas que involucran varias columnas y se justifica cuando esas columnas se consultan frecuentemente juntas.

b)

Para almacenar datos duplicados y se justifica cuando hay redundancia.

c)

Para eliminar columnas innecesarias y se justifica cuando hay muchas columnas.

d)

Para aumentar el tamaño de la base de datos y se justifica cuando se requiere más espacio.

39.

¿Cómo se define una columna GENERATED (columna calculada)?

a)

Es una columna cuyo valor se calcula automáticamente a partir de otras columnas de la tabla.

b)

Es una columna que almacena datos ingresados manualmente por el usuario.

c)

Es una columna que solo puede contener valores nulos.

d)

Es una columna que almacena datos externos a la base de datos.

40.

Las particiones de tablas en bases de datos se configuran para:

a)

Dividir una tabla en segmentos más pequeños para mejorar el rendimiento y la gestión.

b)

Unir varias tablas en una sola para simplificar consultas.

c)

Eliminar datos duplicados de una tabla automáticamente.

d)

Convertir una tabla en una vista materializada.

41.

¿Cuál es el comando correcto para insertar un registro en una tabla en SQL?

a)

INSERT INTO tabla VALUES (valor1, valor2, ...);

b)

ADD RECORD tabla (valor1, valor2, ...);

c)

INSERT RECORD tabla VALUES (valor1, valor2, ...);

d)

PUT INTO tabla VALUES (valor1, valor2, ...);

42.

¿Cuál es la forma correcta de insertar múltiples registros en una sola sentencia SQL?

a)

Usando múltiples sentencias INSERT separadas por punto y coma.

b)

Utilizando la sintaxis INSERT INTO tabla VALUES (registro1), (registro2), ...

c)

Insertando un registro y luego usando UPDATE para agregar más.

d)

Empleando la cláusula SELECT para cada registro individualmente.

43.

¿Cuál es la forma correcta de actualizar registros en una tabla usando UPDATE y WHERE en SQL?

a)

UPDATE nombre_tabla SET columna=valor WHERE condición;

b)

SELECT * FROM nombre_tabla WHERE condición;

c)

DELETE FROM nombre_tabla WHERE condición;

d)

INSERT INTO nombre_tabla (columna) VALUES (valor);

44.

¿Cuál es la forma correcta de eliminar registros en una tabla usando DELETE y WHERE en SQL?

a)

DELETE FROM tabla WHERE condición;

b)

DELETE tabla WHERE condición;

c)

REMOVE FROM tabla WHERE condición;

d)

DELETE WHERE condición FROM tabla;

45.

¿Cuál es la función de INSERT IGNORE en SQL y cuándo se recomienda su uso?

a)

Evita errores al insertar datos duplicados en una tabla.

b)

Elimina filas duplicadas antes de insertar nuevos datos.

c)

Actualiza automáticamente los datos existentes si hay duplicados.

d)

Ignora todas las restricciones de la tabla al insertar datos.

46.

¿Para qué se utiliza el comando REPLACE INTO en SQL?

a)

Para insertar o actualizar registros en una tabla dependiendo si la clave primaria ya existe.

b)

Para eliminar registros duplicados de una tabla.

c)

Para crear una nueva tabla en la base de datos.

d)

Para seleccionar registros específicos de una tabla.

47.

¿Cuál es la función principal de ON DUPLICATE KEY UPDATE en MySQL?

a)

Actualizar los datos existentes si hay una clave duplicada.

b)

Eliminar registros duplicados automáticamente.

c)

Crear una nueva tabla si hay una clave duplicada.

d)

Ignorar la inserción si hay una clave duplicada.

48.

¿Cuál es la principal diferencia entre DELETE y TRUNCATE en impacto y uso?

a)

DELETE elimina filas una por una y puede activar triggers, mientras que TRUNCATE elimina todas las filas rápidamente sin activar triggers.

b)

DELETE elimina todas las filas rápidamente sin activar triggers, mientras que TRUNCATE elimina filas una por una y puede activar triggers.

c)

DELETE y TRUNCATE siempre activan triggers y eliminan filas una por una.

d)

DELETE y TRUNCATE eliminan filas rápidamente y siempre activan triggers.

49.

¿Cuál es el propósito de la sentencia SELECT … INTO OUTFILE en SQL?

a)

Exportar datos de una tabla a un archivo externo.

b)

Importar datos desde un archivo externo a una tabla.

c)

Eliminar datos de una tabla y guardarlos en un archivo.

d)

Actualizar datos en una tabla usando un archivo externo.

50.

¿Cuál es el comando correcto para importar datos usando LOAD DATA INFILE en MySQL?

a)

LOAD DATA INFILE 'archivo.csv' INTO TABLE nombre_tabla;

b)

IMPORT DATA FROM 'archivo.csv' TO nombre_tabla;

c)

INSERT DATA INFILE 'archivo.csv' INTO nombre_tabla;

d)

LOAD FILE DATA 'archivo.csv' TO nombre_tabla;

51.

¿Cuál es la función que se utiliza para insertar la fecha y hora actual en una base de datos?

a)

NOW()

b)

DATE()

c)

GETDATE()

d)

CURDATE()

52.

¿Cuál es la forma correcta de convertir tipos de datos en una consulta SQL?

a)

Usando CAST o CONVERT

b)

Usando SELECT *

c)

Usando WHERE

d)

Usando GROUP BY

53.

¿Cuál es la forma correcta de usar LIMIT y OFFSET en una consulta SQL?

a)

LIMIT especifica el número máximo de registros y OFFSET indica desde qué registro empezar.

b)

LIMIT indica el tipo de datos y OFFSET la tabla a consultar.

c)

LIMIT ordena los resultados y OFFSET los agrupa.

d)

LIMIT filtra por fecha y OFFSET por nombre.

54.

¿Cuál es la forma correcta de ordenar resultados usando ORDER BY con varias columnas en SQL?

a)

ORDER BY columna1, columna2

b)

ORDER BY columna1 columna2

c)

ORDER BY (columna1, columna2)

d)

ORDER BY columna1; columna2

55.

¿Cuál es la forma correcta de usar operadores lógicos (AND, OR, NOT) en una cláusula WHERE en SQL?

a)

WHERE condición1 AND condición2

b)

WHERE condición1 + condición2

c)

WHERE condición1 = condición2 OR condición3

d)

WHERE condición1 NOT condición2

56.

¿Cuál es la forma correcta de buscar patrones en SQL usando LIKE y comodines?

a)

Utilizando LIKE junto con los símbolos % y _ para definir los patrones.

b)

Usando el operador = y el símbolo # para los patrones.

c)

Aplicando el operador IN y el símbolo * para los patrones.

d)

Empleando el operador BETWEEN y el símbolo $ para los patrones.

57.

¿Cuál es la forma correcta de usar IN, BETWEEN y IS NULL en una consulta SQL?

a)

IN se usa para comparar con una lista de valores, BETWEEN para rangos y IS NULL para verificar valores nulos.

b)

IN se usa para sumar valores, BETWEEN para restar y IS NULL para eliminar registros.

c)

IN se usa para ordenar resultados, BETWEEN para agrupar y IS NULL para contar registros.

d)

IN se usa para filtrar por fecha, BETWEEN para texto y IS NULL para números.

58.

¿El comando DISTINCT en SQL se utiliza para:

a)

Eliminar filas duplicadas en los resultados de una consulta.

b)

Ordenar los resultados de una consulta.

c)

Filtrar los resultados por una condición específica.

d)

Actualizar los datos de una tabla.

59.

¿Cuál es la forma correcta de usar GROUP BY en una consulta SQL?

a)

Para agrupar filas que tienen valores iguales en columnas especificadas.

b)

Para eliminar filas duplicadas de una tabla.

c)

Para ordenar los resultados de una consulta.

d)

Para unir dos tablas diferentes.

60.

¿Cuál es la diferencia principal entre HAVING y WHERE en SQL y cómo se aplica HAVING?

a)

HAVING se utiliza para filtrar resultados después de aplicar funciones de agregación, mientras que WHERE filtra antes de la agregación.

b)

HAVING se usa para ordenar los resultados, mientras que WHERE filtra filas individuales.

c)

HAVING filtra columnas específicas, mientras que WHERE filtra tablas completas.

d)

HAVING se aplica solo en subconsultas, mientras que WHERE se usa en consultas principales.

61.

¿Cuál es el propósito de INNER JOIN en SQL?

a)

Combinar filas de dos tablas cuando hay coincidencias en ambas.

b)

Eliminar filas duplicadas de una tabla.

c)

Ordenar los resultados de una consulta.

d)

Actualizar datos en dos tablas al mismo tiempo.

62.

¿Cuál es la diferencia principal entre LEFT JOIN y RIGHT JOIN en SQL?

a)

LEFT JOIN devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha; RIGHT JOIN devuelve todas las filas de la tabla derecha y las coincidentes de la izquierda.

b)

LEFT JOIN solo devuelve filas coincidentes de ambas tablas; RIGHT JOIN solo devuelve filas no coincidentes.

c)

LEFT JOIN une tablas por columnas con el mismo nombre; RIGHT JOIN une tablas por columnas con diferente nombre.

d)

LEFT JOIN se usa solo con bases de datos MySQL; RIGHT JOIN se usa solo con bases de datos SQL Server.

63.

¿Cuál es la función de FULL OUTER JOIN y cómo se puede emular en MySQL?

a)

Permite combinar todas las filas de dos tablas y se puede emular usando UNION de LEFT JOIN y RIGHT JOIN.

b)

Solo combina las filas coincidentes de dos tablas y se emula con INNER JOIN.

c)

Combina filas de dos tablas pero solo muestra las filas de la primera tabla.

d)

No se puede emular en MySQL de ninguna manera.

64.

El CROSS JOIN en SQL se utiliza para:

a)

Combinar todas las filas de dos tablas, generando el producto cartesiano.

b)

Unir tablas solo cuando hay coincidencias en las claves.

c)

Eliminar filas duplicadas entre dos tablas.

d)

Actualizar datos en dos tablas simultáneamente.

65.

La forma correcta de unir más de dos tablas es:

a)

Utilizando múltiples cláusulas JOIN en la consulta.

b)

Usando solo una cláusula WHERE.

c)

Combinando las tablas manualmente fuera de la base de datos.

d)

Uniendo solo dos tablas y luego agregando los datos restantes por separado.

66.

¿Cuál es una forma de evitar duplicados al realizar JOINs en SQL?

a)

Usar DISTINCT o claves correctas en la consulta

b)

Ignorar la condición ON en el JOIN

c)

Utilizar solo INNER JOIN sin condiciones

d)

Agregar más columnas sin filtrar

67.

¿Cuál es la diferencia entre filtrar resultados de JOIN usando condiciones en ON y en WHERE?

a)

ON filtra filas antes de unir tablas, WHERE filtra después de la unión.

b)

ON y WHERE filtran resultados exactamente igual en JOIN.

c)

WHERE filtra filas antes de unir tablas, ON filtra después de la unión.

d)

Ambos ON y WHERE solo afectan INNER JOIN.

68.

El producto cartesiano en bases de datos puede causar problemas como duplicación excesiva de filas. ¿Cómo se puede evitar este problema?

a)

Utilizando correctamente las cláusulas JOIN con condiciones ON adecuadas.

b)

Eliminando todas las claves primarias de las tablas.

c)

Usando solo SELECT sin ninguna condición.

d)

Agregando más columnas a las tablas.

69.

¿Cuál es el propósito de un SELF JOIN en SQL y cuál es un caso de uso típico?

a)

Permite unir una tabla consigo misma para comparar filas, por ejemplo, empleados y sus jefes en la misma tabla.

b)

Permite unir dos bases de datos diferentes para obtener datos combinados.

c)

Se utiliza para eliminar filas duplicadas en una tabla.

d)

Sirve para unir tablas con diferentes estructuras de datos.

70.

¿Cómo combinar datos con UNION y UNION ALL?

a)

Se combinan resultados de dos o más consultas SELECT usando UNION para eliminar duplicados y UNION ALL para incluir todos los resultados.

b)

UNION y UNION ALL solo funcionan con tablas que tienen claves primarias idénticas.

c)

UNION elimina todos los resultados y UNION ALL solo muestra los duplicados.

d)

UNION y UNION ALL se utilizan únicamente para combinar columnas, no filas.

71.

¿Cómo ordenar resultados de una unión (ORDER BY con UNION)?

a)

Se utiliza ORDER BY al final de la consulta UNION para ordenar el resultado combinado.

b)

Se utiliza ORDER BY antes de cada SELECT en la consulta UNION.

c)

ORDER BY no se puede usar con UNION.

d)

Se utiliza ORDER BY solo en el primer SELECT de la consulta UNION.

72.

¿Cómo hacer un JOIN con una subconsulta en el lado derecho?

a)

Se coloca una subconsulta en el FROM o JOIN y se le asigna un alias para unirla con otra tabla.

b)

Se utiliza la cláusula WHERE para unir la subconsulta con la tabla principal.

c)

Se coloca la subconsulta en el SELECT y se une automáticamente.

d)

Se usa la función JOIN_SUBQUERY() para unir la subconsulta con la tabla.

73.

¿Cómo usar EXISTS vs IN y cuándo cada uno rinde mejor?

a)

EXISTS verifica la existencia de filas y suele ser más eficiente en subconsultas correlacionadas; IN compara valores y es útil con listas pequeñas.

b)

EXISTS se utiliza solo para eliminar datos, mientras que IN es exclusivo para actualizar registros.

c)

EXISTS compara valores directamente en listas grandes, mientras que IN verifica la existencia de filas en subconsultas.

d)

EXISTS y IN siempre tienen el mismo rendimiento y se usan indistintamente en cualquier consulta.

74.

¿Qué es SEMI JOIN y ANTI JOIN y cómo simularlos?

a)

SEMI JOIN retorna filas que tienen coincidencia en otra tabla; ANTI JOIN retorna filas que no tienen coincidencia. Se simulan con EXISTS y NOT EXISTS.

b)

SEMI JOIN retorna todas las filas de ambas tablas; ANTI JOIN retorna solo las filas duplicadas. Se simulan con UNION y INTERSECT.

c)

SEMI JOIN elimina filas duplicadas; ANTI JOIN elimina filas únicas. Se simulan con GROUP BY y HAVING.

d)

SEMI JOIN retorna filas sin coincidencia; ANTI JOIN retorna filas con coincidencia. Se simulan con INNER JOIN y OUTER JOIN.

75.

¿Cómo usar COALESCE para manejar valores nulos en JOINs?

a)

COALESCE permite reemplazar valores nulos por un valor predeterminado en los resultados de un JOIN.

b)

COALESCE elimina todas las filas con valores nulos en un JOIN.

c)

COALESCE convierte los valores nulos en ceros automáticamente en un JOIN.

d)

COALESCE impide que se realicen JOINs si existen valores nulos.

76.

¿Qué impacto tienen las claves foráneas en el rendimiento de JOINs?

a)

Las claves foráneas pueden mejorar la integridad referencial pero pueden afectar el rendimiento si no están indexadas.

b)

Las claves foráneas siempre mejoran el rendimiento de los JOINs sin importar si están indexadas.

c)

Las claves foráneas eliminan la necesidad de usar índices en las tablas relacionadas.

d)

Las claves foráneas no tienen ningún impacto en el rendimiento de los JOINs.

77.

¿Cómo usar USING(columna) en lugar de ON?

a)

USING se utiliza cuando las columnas a unir tienen el mismo nombre en ambas tablas, simplificando la sintaxis del JOIN.

b)

USING se utiliza para unir tablas aunque las columnas tengan diferentes nombres.

c)

USING se utiliza únicamente en consultas de actualización (UPDATE).

d)

USING reemplaza completamente la cláusula WHERE en las consultas JOIN.

78.

¿Cómo resolver ambigüedad de columnas con alias?

a)

Se asignan alias a las tablas y se especifica el alias antes del nombre de la columna para evitar ambigüedad.

b)

Se eliminan todas las columnas duplicadas de la consulta.

c)

Se utiliza únicamente el nombre de la columna sin alias.

d)

Se renombra la base de datos para evitar coincidencias de nombres.

79.

¿Cómo optimizar JOINs con índices adecuados?

a)

Se crean índices en las columnas utilizadas en las condiciones de JOIN para mejorar el rendimiento.

b)

Se eliminan todos los índices para acelerar los JOINs.

c)

Se utilizan únicamente índices en columnas que no participan en el JOIN.

d)

Se evita el uso de índices para que el motor de base de datos decida automáticamente.

80.

¿Cómo detectar y evitar N+1 queries en aplicaciones?

a)

Se evita realizando JOINs o consultas en lote en lugar de múltiples consultas individuales dentro de un bucle.

b)

Utilizando únicamente consultas SELECT simples sin condiciones.

c)

Ignorando el uso de índices en la base de datos.

d)

Realizando una consulta por cada registro sin importar la cantidad.

81.

¿Cómo usar GROUP BY con JOINs sin generar resultados incorrectos?

a)

Se agrupan los resultados correctamente asegurando que las columnas seleccionadas sean consistentes con el GROUP BY.

b)

Se utiliza GROUP BY solo en una de las tablas y se ignoran las demás.

c)

Se omite el uso de GROUP BY cuando se hace JOIN para evitar errores.

d)

Se agrupan los resultados únicamente por las columnas de la tabla principal, sin considerar las columnas de la tabla unida.

82.

¿Cómo sumarizar datos con ROLLUP?

a)

ROLLUP se usa con GROUP BY para generar totales y subtotales en los resultados agrupados.

b)

ROLLUP se utiliza para eliminar duplicados en una tabla.

c)

ROLLUP sirve para ordenar los resultados de una consulta.

d)

ROLLUP se emplea para unir varias tablas en una sola consulta.

83.

¿Cómo calcular porcentajes por grupo en una consulta?

a)

Se utiliza una subconsulta o funciones de ventana para calcular el total y luego el porcentaje por grupo.

b)

Se utiliza únicamente la cláusula WHERE para calcular porcentajes por grupo.

c)

Los porcentajes por grupo se calculan sumando los valores y dividiéndolos por el número de columnas.

d)

Se emplea la función COUNT(*) directamente para obtener el porcentaje por grupo.

84.

¿Cómo pivotar datos (simular PIVOT) en MySQL?

a)

Se utiliza CASE WHEN junto con agregaciones para simular la funcionalidad de PIVOT.

b)

Se utiliza la función PIVOT nativa de MySQL.

c)

Se utiliza la cláusula TRANSFORM en MySQL.

d)

Se utiliza GROUP BY sin ninguna condición adicional.

85.

¿Cómo deshacer un pivot (UNPIVOT) con consultas?

a)

Se emplean UNION ALL y SELECT para transformar columnas en filas.

b)

Se utiliza GROUP BY para agrupar los datos.

c)

Se emplea ORDER BY para ordenar las columnas.

d)

Se usa HAVING para filtrar los resultados.

86.

¿Cómo limitar resultados por grupo (Top-N por grupo) con window functions?

a)

Se utiliza ROW_NUMBER() o RANK() en una función de ventana y se filtra por el valor deseado.

b)

Se utiliza GROUP BY junto con LIMIT directamente en la consulta.

c)

Se utiliza HAVING para filtrar los primeros N resultados por grupo.

d)

Se utiliza DISTINCT para seleccionar los primeros N resultados por grupo.

87.

¿Cómo identificar duplicados por clave natural?

a)

Se agrupa por la clave natural y se filtran los grupos con COUNT(*) > 1.

b)

Se eliminan todas las filas con valores repetidos en cualquier columna.

c)

Se ordena la tabla por la clave primaria y se buscan valores únicos.

d)

Se utiliza DISTINCT para mostrar solo los registros únicos.

88.

¿Cómo encontrar registros huérfanos (sin correspondencia en la tabla padre)?

a)

Se utiliza LEFT JOIN y se filtra por valores nulos en la columna de la tabla padre.

b)

Se utiliza INNER JOIN y se filtra por valores duplicados en la columna de la tabla padre.

c)

Se utiliza RIGHT JOIN y se filtra por valores no nulos en la columna de la tabla hija.

d)

Se utiliza CROSS JOIN y se filtra por valores nulos en ambas tablas.

89.

¿Cómo listar relaciones muchos-a-muchos correctamente?

a)

Se emplean tablas intermedias y JOINs para mostrar las relaciones entre entidades.

b)

Solo se utiliza una tabla principal sin relaciones adicionales.

c)

Se eliminan las tablas intermedias y se usan campos duplicados en ambas entidades.

d)

Se usan únicamente claves primarias en una sola tabla.

90.

¿Cómo auditar inconsistencias de integridad referencial con consultas?

a)

Se buscan registros huérfanos y se validan las claves foráneas con LEFT JOIN y condiciones de nulidad.

b)

Se eliminan todos los registros duplicados en las tablas relacionadas.

c)

Se actualizan manualmente las claves primarias en todas las tablas.

d)

Se utiliza únicamente INNER JOIN para asegurar la integridad.

91.

¿Qué son las window functions en MySQL 8 y ejemplos (ROW_NUMBER, RANK)?

a)

Las window functions permiten realizar cálculos sobre un conjunto de filas relacionadas; ejemplos incluyen ROW_NUMBER() y RANK().

b)

Las window functions son funciones que solo se usan para ordenar tablas en MySQL 8.

c)

Las window functions permiten crear nuevas tablas a partir de consultas en MySQL 8.

d)

Las window functions son funciones que solo se aplican a columnas de tipo texto en MySQL 8.

92.

¿Cómo calcular acumulados por grupo (SUM() OVER (PARTITION BY ...))?

a)

Se utiliza SUM() OVER (PARTITION BY columna) para calcular acumulados por grupo.

b)

Se utiliza COUNT() GROUP BY columna para calcular acumulados por grupo.

c)

Se utiliza AVG() OVER (ORDER BY columna) para calcular acumulados por grupo.

d)

Se utiliza MAX() GROUP BY columna para calcular acumulados por grupo.

93.

¿Cómo usar LEAD/LAG y casos prácticos?

a)

LEAD y LAG permiten acceder a valores de filas siguientes o anteriores en el conjunto de resultados.

b)

LEAD y LAG se utilizan para crear índices primarios en una tabla.

c)

LEAD y LAG sirven para eliminar duplicados en los resultados de una consulta.

d)

LEAD y LAG permiten sumar todos los valores de una columna automáticamente.

94.

¿Cómo usar NTILE para segmentación en percentiles?

a)

NTILE(n) divide el conjunto de resultados en n grupos de tamaño similar.

b)

NTILE(n) suma los valores de cada grupo y los divide por n.

c)

NTILE(n) ordena los resultados alfabéticamente en n grupos.

d)

NTILE(n) elimina los valores duplicados antes de segmentar.

95.

¿Cómo usar CASE WHEN en SELECT para crear categorías?

a)

CASE WHEN permite crear columnas calculadas basadas en condiciones.

b)

CASE WHEN se utiliza únicamente para ordenar los resultados.

c)

CASE WHEN solo sirve para eliminar filas duplicadas.

d)

CASE WHEN es usado para unir dos tablas diferentes.

96.

¿Cómo formatear cadenas con CONCAT, SUBSTRING, LEFT/RIGHT?

a)

Se utilizan funciones CONCAT para unir, SUBSTRING para extraer, y LEFT/RIGHT para obtener partes de cadenas.

b)

Se utiliza CONCAT para dividir cadenas, SUBSTRING para unirlas y LEFT/RIGHT para eliminar caracteres.

c)

CONCAT, SUBSTRING y LEFT/RIGHT solo funcionan con números, no con cadenas.

d)

LEFT/RIGHT se usan para unir cadenas, SUBSTRING para eliminar y CONCAT para extraer partes.

97.

¿Cómo limpiar texto (TRIM, REPLACE, REGEXP_REPLACE en MySQL 8)?

a)

TRIM elimina espacios, REPLACE sustituye caracteres, REGEXP_REPLACE permite reemplazos por expresiones regulares.

b)

TRIM elimina caracteres especiales, REPLACE elimina espacios, REGEXP_REPLACE solo funciona con números.

c)

TRIM convierte texto a mayúsculas, REPLACE elimina palabras, REGEXP_REPLACE no existe en MySQL.

d)

TRIM reemplaza texto, REPLACE elimina texto, REGEXP_REPLACE ordena texto alfabéticamente.

98.

¿Cómo usar funciones de fecha?

a)

DATE_ADD suma intervalos, DATEDIFF calcula diferencias, DATE_FORMAT da formato a fechas.

b)

DATE_SUB multiplica fechas, DATE_COMPARE resta fechas, DATE_STYLE cambia el color.

c)

DATE_MERGE une fechas, DATE_SPLIT divide fechas, DATE_COLOR pinta fechas.

d)

DATE_COUNT cuenta fechas, DATE_REMOVE elimina fechas, DATE_SHAPE da forma a fechas.

99.

¿Cómo redondear y formatear números?

a)

ROUND redondea números, FORMAT aplica formato con separadores y decimales.

b)

ROUND aplica formato, FORMAT redondea números.

c)

FORMAT solo redondea números.

d)

ROUND y FORMAT hacen lo mismo.

100.

¿Qué es IFNULL vs NULLIF y ejemplos?

a)

IFNULL devuelve un valor alternativo si el argumento es nulo; NULLIF retorna NULL si los argumentos son iguales.

b)

IFNULL compara dos valores y retorna el mayor; NULLIF suma ambos valores si son diferentes.

c)

IFNULL convierte valores nulos en ceros; NULLIF convierte ceros en nulos.

d)

IFNULL retorna NULL si el argumento es cero; NULLIF retorna cero si los argumentos son iguales.