wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Subconsultas y consultas asociadas SQL

Total questions: 25

Worksheet time: 13mins

Name
Class
Date
1.

¿Qué son las subconsultas en SQL?

a)

Las subconsultas en SQL son consultas que se ejecutan en paralelo a la consulta principal.

b)

Las subconsultas en SQL son consultas anidadas dentro de una consulta principal.

c)

Las subconsultas en SQL son consultas que se utilizan para actualizar los datos en una tabla.

d)

Las subconsultas en SQL son consultas que se ejecutan después de la consulta principal.

2.

¿Cuál es la diferencia entre una subconsulta correlacionada y una subconsulta anidada?

a)

La diferencia radica en que una subconsulta correlacionada se utiliza en consultas de agrupamiento, mientras que una subconsulta anidada se utiliza en consultas de ordenamiento.

b)

La diferencia radica en que una subconsulta correlacionada se utiliza en consultas de actualización, mientras que una subconsulta anidada se utiliza en consultas de selección.

c)

La diferencia radica en que una subconsulta correlacionada se encuentra dentro de otra subconsulta, mientras que una subconsulta anidada depende de los valores de la consulta externa.

d)

La diferencia radica en que una subconsulta correlacionada depende de los valores de la consulta externa, mientras que una subconsulta anidada se encuentra dentro de otra consulta.

3.

¿Cómo se utiliza la cláusula EXISTS en una subconsulta?

a)

Se utiliza en combinación con la cláusula FROM en la consulta principal.

b)

Se utiliza en combinación con la cláusula SELECT en la consulta principal.

c)

Se utiliza en combinación con la cláusula GROUP BY en la consulta principal.

d)

Se utiliza en combinación con la cláusula WHERE en la consulta principal.

4.

¿Cuál es la sintaxis para una subconsulta con IN en SQL?

a)

SELECT columna FROM tabla WHERE columna IN (SELECT columna FROM tabla)

b)

SELECT columna FROM tabla WHERE columna IN (SELECT columna, columna2 FROM tabla WHERE columna != 'valor')

c)

SELECT columna FROM tabla WHERE columna IN (SELECT * FROM tabla WHERE columna > 'valor')

d)

SELECT columna FROM tabla WHERE columna IN (SELECT columna FROM tabla WHERE columna = 'valor')

5.

¿Cuál es el propósito de utilizar subconsultas en consultas SQL?

a)

El propósito de utilizar subconsultas en consultas SQL es reducir la velocidad de las consultas.

b)

El propósito de utilizar subconsultas en consultas SQL es simplificar las consultas y obtener resultados menos precisos.

c)

El propósito de utilizar subconsultas en consultas SQL es aumentar la complejidad de las consultas y obtener resultados menos precisos.

d)

El propósito de utilizar subconsultas en consultas SQL es permitir realizar consultas más complejas y obtener resultados más precisos.

6.

¿Cuál es la ventaja de utilizar subconsultas en lugar de joins en SQL?

a)

Ninguna.

b)

Las subconsultas permiten realizar consultas más complejas y flexibles que los joins.

c)

Las subconsultas son más rápidas que los joins en SQL.

d)

Las subconsultas no permiten realizar consultas más complejas y flexibles.

7.

¿Cuál es la diferencia entre una subconsulta con IN y una subconsulta con EXISTS?

a)

La subconsulta con IN devuelve valores si hay una coincidencia en la lista de valores proporcionada, mientras que la subconsulta con EXISTS devuelve un valor booleano (verdadero o falso) si la subconsulta devuelve algún resultado.

b)

La subconsulta con IN devuelve valores si hay una coincidencia en la lista de valores proporcionada, mientras que la subconsulta con EXISTS devuelve valores si no hay una coincidencia en la subconsulta.

c)

La subconsulta con IN devuelve valores si no hay una coincidencia en la lista de valores proporcionada, mientras que la subconsulta con EXISTS devuelve un valor booleano (verdadero o falso) si la subconsulta devuelve algún resultado.

d)

La subconsulta con IN devuelve un valor booleano (verdadero o falso) si la subconsulta devuelve algún resultado, mientras que la subconsulta con EXISTS devuelve valores si hay una coincidencia en la lista de valores proporcionada.

8.

En una tabla de notas, si queremos obtener la persona que tiene la nota máxima, ¿qué usaremos?

a)

Subconsulta

b)

Consulta asociada

9.

Si tenemos dos tablas, una con nombres de alumnos y otra con las asignaturas a las que están matriculados, si queremos ver a que asignaturas están matriculados los alumnos, ¿qué usaremos?

a)

Subconsultas

b)

Consultas asociadas

10.

Elige la sintaxis correcta

a)

SELECT * FROM alumnos WHERE dni = (SELECT dni FROM alumnos WHERE apellido LIKE "A%");

b)

SELECT * FROM alumnos WHERE dni = (SELECT dni, apellido FROM alumnos WHERE apellido LIKE "A%");

c)

SELECT * FROM alumnos WHERE dni IN (SELECT dni, apellido FROM alumnos WHERE apellido LIKE "A%");

d)

SELECT * FROM alumnos WHERE dni IN (SELECT dni FROM alumnos WHERE apellido LIKE "A%");

11.

Queremos saber los alumnos que están matriculados a la asignatura "FOL":

a)

SELECT * FROM alumnos a

WHERE EXISTS

(SELECT m.dni FROM matriculas m

WHERE a.dni = m.dni

AND m.idasignatura = (SELECT id FROM asignaturas ag WHERE ag.nombre = "FOL"));

b)

SELECT * FROM alumnos a

WHERE a.dni IN

(SELECT m.dni FROM matriculas m

WHERE a.dni = m.dni

AND m.idasignatura = (SELECT id FROM asignaturas ag WHERE ag.nombre = "FOL"));

c)

SELECT * FROM alumnos a

WHERE EXISTS

(SELECT m.dni FROM matriculas m

WHERE a.dni = m.dni

AND m.idasignatura = "FOL");

d)

SELECT * FROM alumnos a

WHERE EXISTS

(SELECT m.dni FROM matriculas m

WHERE a.dni = m.dni

OR m.idasignatura = (SELECT id FROM asignaturas ag WHERE ag.nombre = "FOL"));

12.

Queremos contar las horas lectivas del profesor/a de apellido "Buenavista":

SELECT _1_ FROM asignaturas a WHERE a.DNIProfesor = (SELECT p.DNI FROM personal p WHERE apellido1 _2_ "Buenavista");

a)
  1. 1. COUNT(*)

  2. 2. LIKE

b)
  1. 1. SUM(HorasLectivas)

  2. 2. LIKE

c)
  1. 1. SUM(HorasLectivas)

  2. 2. =

d)
  1. 1. COUNT(HorasLectivas)

  2. 2. =

13.

Queremos contar las horas lectivas de los profesores de apellido "Buenavista" o "Palacios":

SELECT _1_ FROM asignaturas a

WHERE a.DNIProfesor _2_ (SELECT p.DNI FROM personal p WHERE apellido1 = "Buenavista" OR apellido1 = "Palacios")

GROUP BY _3_;

a)
  1. 1. COUNT(*)

  2. 2. LIKE

  3. 3. a.DNIProfesor

b)
  1. 1. SUM(HorasLectivas)

  2. 2. IN

  3. 3. a.DNIProfesor

c)
  1. 1. SUM(HorasLectivas)

  2. 2. IN

  3. 3. a.Nombre

d)
  1. 1. COUNT(HorasLectivas)

  2. 2. IN

  3. 3. a.DNIProfesor

14.

¿Cuál es la diferencia entre un NATURAL JOIN y un JOIN USING(columna)?

a)

Ninguna

b)

Ninguna si la única columna de igual nombre entre las dos tablas a unir es "columna"

c)

NATURAL JOIN buscará las claves foráneas y unirá usando esas columnas, mientras que JOIN USING unirá usando la columna especificada

d)

JOIN USING no elimina las columnas con nombre duplicado del resultado.

15.

¿Cuál es la diferencia entre un JOIN USING(columna) y JOIN ON(t1.columna = t2.columna)?

a)

Ninguna

b)

JOIN ON es más rápido.

c)

JOIN ON no elimina las columnas con nombre duplicado del resultado.

d)

JOIN USING no elimina las columnas con nombre duplicado del resultado.

16.

¿Cuál es la diferencia entre un CROSS JOIN y un producto cartesiano (t1, t2)?

a)

Ninguna

b)

CROSS JOIN es más rápido.

c)

CROSS JOIN elimina las columnas duplicadas del resultado.

d)

Con CROSS JOIN no nos hace falta poner las condiciones de asociación en un WHERE

17.

¿Son equivalentes las siguientes sentencias?

SELECT a.Nombre, ag.Nombre from alumnos a, asignaturas ag, matriculas m

WHERE a.DNI = m.DNI AND ag.id = m.idasignatura;

SELECT a.Nombre, ag.Nombre

FROM alumnos a JOIN matriculas m USING(dni)

JOIN asignaturas ag ON(m.idasignatura = ag.id);

a)

Si

b)

No

18.

¿Son equivalentes las siguientes sentencias?

SELECT * from alumnos a, asignaturas ag, matriculas m

WHERE a.DNI = m.DNI AND ag.id = m.idasignatura;

SELECT *

FROM alumnos a JOIN matriculas m USING(dni)

JOIN asignaturas ag ON(m.idasignatura = ag.id);

a)

Si

b)

No

19.

En la siguiente consulta:

SELECT * FROM personal p JOIN asignaturas ag

ON(p.DNI = ag.DNIProfesor);

Sabiendo que hay personal no docente (que no imparte ninguna asignatura):

a)

Mostrará todos los elementos de la tabla "personal", rellenando con NULL los atributos correspondientes a la tabla asignaturas de las filas de personal que no están referenciadas.

b)

No aparecerá el personal no docente.

c)

No saldrá el personal no docente, pero aparecerá personal NULL para asignaturas sin docente asignado.

d)

La consulta está mal escrita.

20.

Existe personal que no es profesor, ese personal no tendrá asignaturas asociadas. Queremos incluir a esas personas en el resultado de la consulta:

SELECT * FROM personal p (a)   JOIN asignaturas ag

ON(p.DNI = ag.DNIProfesor);

Rellena el hueco.

21.

Tenemos alguna asignatura que no tiene profesor asignado, queremos que aparezcan en la consulta:

SELECT * FROM personal p (a)   JOIN asignaturas ag

ON(p.DNI = ag.DNIProfesor);

Rellena el hueco.

22.

Tenemos que contratar nuevos profesores para cubrir las asignaturas que faltan, para determinar estas asignaturas usamos la consulta:

SELECT ag.Nombre, ag.HorasLectivas FROM asignaturas ag

_1_ JOIN personal p ON(ag.DNIProfesor = p.DNI) _2_;

a)
  1. 1. LEFT

  2. 2. WHERE ag IS NULL

b)
  1. 1. RIGHT

  2. 2. WHERE ag EXISTS

c)
  1. 1. LEFT

  2. 2. WHERE ag.Nombre IS NULL

d)
  1. 1. LEFT

  2. 2. WHERE ag.id = NULL

23.

Queremos saber cuantos profesores dan clase a cada alumno:

SELECT a.nombre, a.apellido1, a.apellido2, _1_ FROM alumnos a JOIN matriculas m USING(DNI) JOIN asignaturas ag ON(ag.id = m.idasignatura) _2_;

a)
  1. 1. COUNT(*)

    1. 2. GROUP BY a.nombre

b)
  1. 1. COUNT(ag.DNIProfesor)

    1. 2. GROUP BY a.DNI

c)
  1. 1. COUNT(DISTINCT ag.DNIProfesor)

  2. 2. GROUP BY 1

d)
  1. 1. COUNT(DISTINCT ag.DNIProfesor)

  2. 2. GROUP BY a.DNI

24.

¿Cuál de las siguientes consultas es equivalente a esta?

(SELECT * FROM tabla WHERE condicion1) INTERSECT (SELECT * FROM tabla WHERE condicion2)

a)

SELECT * FROM tabla WHERE condicion1 AND condicion2

b)

SELECT * FROM tabla WHERE condicion1 OR condicion2

c)

SELECT * FROM tabla WHERE condicion1 AND NOT condicion2

d)

SELECT * FROM tabla WHERE condicion1 OR NOT condicion2

25.

¿Cuál de las siguientes consultas es equivalente a esta?

(SELECT * FROM tabla WHERE condicion1) EXCEPT (SELECT * FROM tabla WHERE condicion2)

a)

SELECT * FROM tabla WHERE condicion1 AND condicion2

b)

SELECT * FROM tabla WHERE condicion1 OR condicion2

c)

SELECT * FROM tabla WHERE condicion1 AND NOT condicion2

d)

SELECT * FROM tabla WHERE condicion1 OR NOT condicion2