Test
BBDD_4_SQL_3
Crea una cuenta gratis para terminar este test
Guarda tu progreso y consulta tu resultado final.
¿Ya tienes cuenta? Inicia sesión
Preguntas del test (28)
1TAI_2016L_2) 16. Escriba una consulta para encontrar nombre y salario de los investigadores cuyo salario es mayor que el salario medio de todos los departamentos:
- ASELECT nombre, salario FROM investigadores WHERE salario > ALL (SELECT avg(salario) FROM investigadores GROUP BY dep_id);
- BSELECT nombre, salario FROM investigadores WHERE salario > ALL (SELECT avg(salario) FROM investigadores);
- CSELECT nombre, salario FROM investigadores WHERE salario > (SELECT avg(salario) FROM investigadores);
- DSELECT nombre, salario FROM investigadores WHERE salario > (SELECT avg(salario) FROM investigadores GROUP BY dep_id);
2TAI_2016i) 4. Para un informa necesitamos contar el número de incidencias por área, ¿cuál cree que debería ser la consulta SQL?
- Aselect count(*), Area.Descripcion from Incidencia, Area where Incidencia.IDArea=Area.ID;
- Bselect count(*), Area.Descripcion from Incidencia, Area where Incidencia.IDArea=Area.ID group by Area.Descripcion;
- Cselect count(Incidencia.ID), Area.descripcion from Incidencia, Area having Area.ID;
- Dselect count(Incidencia.ID), Area.descripcion from Incidencia, Area where Incidencia.IDArea=Area.ID group by Area.ID;
3TAI_2016L) 13. En SQL, la cláusula having:
- ASe utiliza específicamente para realizar cálculos con campos tipo Datetime.
- BSe usa habitualmente en combinación con la cláusula “group by”.
- CEl uso de having impide usar la cláusula where en la misma sentencia.
- DEs un comando que se incluye dentro del llamado Lenguaje de Definición de Datos.
4La cláusula HAVING de SQL, se utiliza para:
- ADevolver los registros ordenados de una tabla.
- BEspecificar una condición de búsqueda para un grupo o agregado.
- CAgrupar varios atributos para formar una clave.
- DObtener en una sentencia SELECT grupos de tuplas en lugar de tuplas individuales
5TAI_2018i) 26. En el estándar ANSI SQL, la cláusula HAVING:
- AElimina los registros duplicados en los resultados de una consulta.
- BPermite emparejar filas de distintas tablas de forma más eficiente.
- CEs equivalente a la cláusula WHERE en caso de usar OUTER JOIN.
- DPermite incluir condiciones en las consultas a los grupos definidos.
6TAI_2014i) 9. En SQL-92, para especificar una condición que debe cumplir un grupo de agregación, usamos:
- AGROUP BY
- BCOUNT
- CSELECT
- DHAVING
7GSI_2016i\A1_2016i) 18. ¿Cuál de las siguientes palabras reservadas de SQL permite aplicar una condición a funciones agregadas?
- AHAVE … IN
- BWHERE … IN
- CHAVING
- DGROUP BY
8TAI_2015L) 23. Indicar qué resultado se puede esperar de esta consulta SQL sobre una tabla ‘COCHES_VENTA’ que mantiene el inventario de automóviles en un pequeño concesionario: SELECT Modelo, Color, COUNT(Bastidor) AS Num FROM COCHES_VENTA GROUP BY Modelo, Color HAVING COUNT(Bastidor) <=1
- ALe indica al dueño del concesionario que quizá debe plantearse adquirir más existencias de un cierto modelo y color de automóvil.
- BLe indica al dueño del concesionario todos los modelos distintos del concesionario. Es decir, un inventario organizado por modelos.
- CLe indica al dueño del concesionario todos los modelos distintos del concesionario. Es decir, un inventario organizado por modelos y color.
- DLe indica al dueño todos los modelos cuyo número de Bastidor es menor o igual a 1.
9TAI_2015i) 5. Para sacar un listado con la deuda total de los ayuntamientos que tienen al menos 2 acreedores en el ejercicio de 2015, ¿cómo haría para modificar la consulta siguiente para sacar lo que se pretende?:
SELECT idAyuntamiento, sum(Deuda.importeDeuda)
FROM Ayuntamiento inner join Deuda On Ayuntamiento. idAyuntamiento = Deuda.idAyuntamiento
WHERE Deuda.ejercicio=2015 GROUP BY Ayuntamiento.idAyuntamiento- AAñadir al final “HAVING count(DISTINCT Deuda.idAcreedor)>1”
- BAñadir al final “HAVING COUNT(*)>1”
- CAñadir después de la cláusula FROM esto: “WHERE count(*)>1”
- DNo se puede resolver mediante SQL únicamente, se necesita un lenguaje 4GL.
10TAI_2018L) 48. Dada una tabla ‘Personal’ con una columna ‘lugar’, se quiere obtener el número de personas en cada lugar, cuando haya más de 10 personas en el mismo. Señale la sentencia SQL correcta:
- ASELECT lugar, Count(*) AS numPersonas FROM Personal GROUP BY lugar HAVING Count(*)>10
- BSELECT lugar, Count(*)>10 AS numPersonas FROM Personal GROUP BY lugar
- CSELECT lugar, Count(*) AS numPersonas FROM Personal GROUP BY lugar WHERE Count(*)>10 GROUP BY lugar
- DSELECT lugar, Count(*) AS numPersonas FROM Personal GROUP BY lugar WHERE Count(lugar)>10
11TAI_2017i) 9. Al dar de alta la tabla ARTÍCULO se ha olvidado crear la clave primaria y hay artículos duplicados con el mismo identificador, ¿cuál de las siguientes sentencias SQL nos permitiría encontrarlos?
- ASELECT idArticulo, count(*) FROM Articulo GROUP BY idArticulo HAVING count(*)>1;
- BSELECT idArticulo FROM Articulo GROUP BY idArticulo HAVING DISTINCT (idArticulo);
- CSELECT DISTINCT(idArticulo) FROM Articulo WHERE idArticulo >1;
- DSELECT A1.idArticulo, A1.count(idArticulo) FROM Articulo A1, Articulo A2 WHERE A1.idArticulo=A2.idArticulo AND count(idArticulo)>1;
12TAI_2017i\TAI_2017L) 22. En una empresa hay una tabla de empleados: EMPLEADO (EMP_ID, NOMBRE, CATEGORIA, SUELDO). Elija qué sentencia nos dará como resultado la categoría y sueldo medio de aquellas categorías cuyo sueldo medio es inferior al sueldo medio de todos los empleados de la empresa.
- ASELECT CATEGORIA, AVG(SUELDO) FROM EMPLEADO GROUP BY CATEGORIA HAVING AVG(SUELDO) < (SELECT AVG(SUELDO) FROM EMPLEADO)
- BSELECT CATEGORIA, AVG(SUELDO) FROM EMPLEADO HAVING CATEGORIA GROUP BY AVG(SUELDO) < (SELECT AVG(SUELDO) FROM EMPLEADO)
- CSELECT CATEGORIA, AVG(SUELDO) FROM EMPLEADO WHERE SUELDO < AVG(SUELDO) GROUP BY CATEGORIA
- DSELECT CATEGORIA, AVG(SUELDO) FROM EMPLEADO WHERE AVG(SUELDO) < (SELECT SUELDO FROM EMPLEADO)
13TAI_2016i) 12. En relación con el estándar ANSI SQL, señala la respuesta correcta:
- AEl operador EXISTS evalúa verdadero si el conjunto resultante es vacío, mientras que NOT EXISTS evalúa verdadero si el conjunto resultante es no vacío.
- BLa cláusula ORDER BY permite presentar las filas resultado de una consulta de forma ordenada, pero no se ordenan en disco.
- CLa cláusula HAVING indica qué filas deben agruparse sobre un valor común de las columnas especificadas, mientras que GROUP BY impone condiciones a los grupos.
- DLa palabra clave NOT DISTINCT es usada para que el sistema cuente el mimo registro más de una vez en los resultados si sale repetido.
14TAI_2018L_2) 10. Una vez creada la tabla Aula le piden obtener el número de aulas existentes por edificio. ¿Qué sentencia SQL ejecutaría?
- ASELECT COUNT(*) FROM Aula WHERE idEdificio IS NOT NULL
- BSELECT idEdificio, COUNT(*) FROM Aula INNER JOIN Edificio ON Aula.idEdificio = Edificio.idEdificio
- CSELECT idEdificio, COUNT(*) FROM Aula WHERE COUNT(*)>0
- DSELECT idEdificio, COUNT(*) FROM Aula GROUP BY idEdificio
15TAI_2019L/TAI_2019i) 17. También le consultan sobre la sentencia SQL a utilizar para obtener el listado del identificador de los opositores (IdOpositor) que tienen más de una entrada en la tabla Solicitud.
- ASELECT IdOpositor, COUNT(IdSolicitud) AS NumeroSolicitudes FROM Solicitud GROUP BY IdOpositor WHERE NumeroSolicitudes > 1
- BSELECT IdOpositor, IdSolicitud FROM Solicitud WHERE COUNT(IdSolicitud) > 1
- CSELECT IdOpositor, COUNT(IdSolicitud) FROM Solicitud WHERE COUNT(IdSolicitud) > 1 GROUP BY IdOpositor
- DSELECT IdOpositor, COUNT(IdSolicitud) FROM Solicitud GROUP BY IdOpositor HAVING COUNT(IdSolicitud) > 1
16TAI_2016L) 14. Con la cláusula ORDER BY de SQL, si nos encontramos con la siguiente consulta: SELECT * FROM Empleados ORDER BY Provincia DESC, Municipio; ¿Cuál es el resultado que se obtendría?
- AUn listado de empleados ordenado de manera ascendente por la columna Provincia y, dentro de cada provincia ordenado de manera ascendente por la columna Municipio.
- BUn listado de empleados ordenado de manera descendente por la columna Provincia y, dentro de cada provincia ordenado de manera ascendente por la columna Municipio.
- CUn listado de empleados ordenado de manera ascendente por la columna Provincia y, dentro de cada provincia ordenado de manera descendente por la columna Municipio.
- DDa ERROR, la sintaxis correcta es SELECT * FROM Empleados ORDER BY Provincia, Municipio DESC; El criterio de ordenación (ASC o DESC) debe ser el mismo para todas las columnas ORDER BY y encontrarse al final de la cláusula.
17TAI_2017i\TAI_2017L) 24. ¿Cuál de las siguientes operaciones NO es una operación de agregación en SQL?
- AAVG
- BCOUNT
- CDISTINCT
- DSUM
18TAI_2017L) 47. En una base de datos en la que se almacena información de clientes a través de la tabla Clientes, existen , entre otras, las siguientes columnas: “id”, “Nombre”, “Apellido1”, etc. ¿Cuál de las siguientes sentencias SQL devuelve el número de nombres (sólo Nombre, sin incluir apellidos) diferentes que hay en la tabla?
- ASELECT DISTINCT(Nombre) FROM Clientes
- BSELECT SUM(UNIQUE(Nombre)) FROM Clientes
- CSELECT COUNT((DISTINCT(Nombre)) FROM Clientes
- DSELECT SUM(DISTINCT(Nombre)) FROM Clientes
19TAI_2016L_2) 17. ¿Cuál de las siguientes consultas selecciona el “tercer salario mínimo” de los investigadores del departamento de Inteligencia Artificial (dep_nombre=’IN_AR’)?
- ASELECT DISTINCT salario, dep_id FROM investigadores e1 WHERE dep_nombre=’IN_AR’ AND 3 = (SELECT COUNT(DISTINCT salario) FROM investigadores e2 WHERE e2.salario <= e1.salario);
- BSELECT DISTINCT e1.salario, e1.dep_id FROM investigadores e1, departamentos d1 WHERE e1.dep_id=d1.dep_id AND d1.dep_nombre=’IN_AR’ AND 3= (SELECT DISTINCT salario FROM investigadores e2 WHERE e2.salario <= e1.salario);
- CSELECT DISTINCT e1.salario, e1.dep_id FROM investigadores WHERE dep_nombre=’IN_AR’ AND 3= (SELECT COUNT(DISTINCT salario) FROM investigadores e2 WHERE e2.salario <= e1.salario);
- DSELECT DISTINCT e1.salario, e1.dep_id FROM investigadores e1, departamentos d1 WHERE e1.dep_id=d1.dep_id AND d1.dep_nombre=’IN_AR’ AND 3 (SELECT COUNT(DISTINCT salario) FROM investigadores e2, departamentos d2 WHERE e2.dep_id=d2.dep_id AND d2.dep_nombre=’IN_AR’ AND e2.salario <= e1.salario);
20TAI_2016i) 2. Queremos recuperar todas las incidencias con prioridad crítica. Sabiendo que puede haber registros en la tabla de Prioridades que no estén en la de Incidencias ¿cuál cree que debería ser la consulta SQL sobre la base de datos?
- Aselect Incidencia.ID from Incidencia, Prioridad where Prioridad.Descripcion='critica’;
- Bselect Incidencia.ID from Incidencia inner join Prioridad on Incidencia.IDPrioridad=Prioridad.ID where Prioridad.Descripcion=’critica’;
- Cselect Incidencia.ID from Incidencia left outer join Prioridad where Prioridad.Descripcion=’critica’ and Prioridad.ID is not null;
- Dselect Incidencia.ID from Incidencia right outer join Prioridad where Prioridad.Descripcion=’critica’ and Prioridad.ID is not null;
21TAI_2018i) 4. Se ha podido cometer un error en el traspaso del diagrama E/R al modelo físico en relación a la cardinalidad de las entidades de las calles y sus tramos. Para ello se quiere realizar una comprobación básica entre ambas tablas. ¿Qué resultado obtendremos de la siguiente sentencia ejecutada en SQL Server?
SELECT Calle.nombre, count(TramoCalle.idTramoCalle)
FROM TramoCalle RIGHT JOIN Calle ON Calle.idCalle = TramoCalle.idCalle
GROUP BY Calle.idCalle, Calle.nombre- AUna fila por cada tramo que tenga al menos una calle asignada. Y se mostrará el nombre de la calle y el número de tramos de dicha calle.
- BUna fila por cada tramo que tenga o no tenga calles asignadas. Y se mostrará el nombre de la calle y el número de tramos de dicha calle.
- CUna fila por cada calle que tenga o no tenga calles asignadas. Y se mostrará el nombre de la calle y el número de tramos de dicha calle.
- DUna fila por cada calle que tenga al menos una calle asignada. Y se mostrará el nombre de la calle y el número de tramos de dicha calle.
22TAI_2018L_2) 8. El sistema cuenta con una tabla de inscripciones antiguas, Inscripcion, que contiene datos de ciudadanos que ya han realizado acciones formativas anteriormente. Teniendo en cuenta que el campo NIF es PK de Ciudadano y FK de Inscripcion, se desea saber qué ciudadanos no han realizado ninguna inscripción en anteriores convocatorias. ¿Qué sentencia SQL utilizaría para obtener dichos datos?
- ASELECT Ciudadano.NIF FROM Ciudadano LEFT JOIN Inscripcion ON ciudadano.NIF = Inscripcion.NIF WHERE Inscripcion.NIF IS null
- BSELECT Ciudadano.NIF FROM Ciudadano INNER JOIN Inscripcion ON ciudadano.NIF = Inscripcion.NIF WHERE Inscripcion.NIF IS null
- CSELECT Ciudadano.NIF FROM Ciudadano LEFT JOIN Inscripcion ON ciudadano.NIF = Inscripcion.NIF
- DSELECT DISTINCT (Ciudadano.NIF) FROM Ciudadano LEFT JOIN Inscripcion ON ciudadano.NIF = Inscripcion.NIF GROUP BY Ciudadano.NIF
23(TIC) 2017I-A) 64. ¿Cuántas tuplas devuelve una sentencia SQL del tipo "SELECT ... FROM Tabla1 LEFT OUTER JOIN Tabla2 ON ..."?
- AEl número máximo entre las tuplas de Tabla1 y Tabla2.
- BAl menos el número de tuplas de Tabla1.
- CEl número de tuplas que están en Tabla1 pero no en Tabla2.
- DEl número de tuplas que, en el producto cartesiano de ambas tablas, cumplen una determinada condición.
24TAI_2015L) 27. ¿Qué operador de SQL, utilizado junto la cláusula WHERE, permite buscar según un patrón determinado en una columna?
- ALIKE
- BIN
- CBETWEEN
- DHAVING
25TAI_2016L) 1. ¿Cuál de las siguientes cláusulas LIKE de SQL permite obtener todos los nombres que empiezan por PAL?
- ALIKE ‘PAL&’
- BLIKE ‘PAL$’
- CLIKE ‘PAL*’
- DLIKE ‘PAL%’
26TAI_2019L) 19. Si el campo DNI de la tabla Opositor es de tipo char(9), ¿cuál es la instrucción SQL para obtener el listado de todos los registros de la tabla Opositor cuyo DNI empieza por 3?
- ASELECT * FROM Opositor WHERE DNI = 3*
- BSELECT * FROM Opositor WHERE DNI IN ('3.')
- CSELECT * FROM Opositor WHERE DNI LIKE '3%'
- DSELECT DNI(3*) FROM Opositor
27TAI_2018L) 50. Dado un procedimiento almacenado en SQL Server con la cabecera
CREATE PROCEDURE getEmployees @LastName varchar(50, @FirstName navarchar(50)
¿Cuál NO sería una instrucción válida para ejecutar dicho procedimiento?- AEXECUTE getEmployees @FirstName = N’Pilar’, @LastName = N’Rojas’;
- BEXEC getEmployees @LastName = N’Rojas’, @FirstName = N’Pilar’;
- CEXECUTE getEmployees N’Rojas’, N’Pilar’;
- DEXEC getEmployees @LastName = N’Rojas’, N’Pilar’;
28TAI_2018i) 6. Le piden que ejecute el anterior procedimiento que ha creado. ¿Cuál de las siguientes sentencias es INCORRECTA?
- AEXECUTE calcularTarifa @idZona = 1, @Minutos = 50;
- BEXECUTE calcularTarifa @Minutos = 50, @idZona = 1;
- CEXECUTE calcularTarifa 1, 50;
- DEXECUTE calcularTarifa @Minutos = 50, 1;
Información
- Descripción
- Selectividad B3 Test sobre BBDD_4_SQL_3, creado por Ivan Sanchez Castiñeira el 22/05/2022.
- Idioma
- Español
- Visitas
- 0
- Etiquetas
- Valoración
- Aún sin valoraciones Valora este test