Está en la página 1de 5

Lección 2

Devuelve nombre, apellido y f. nacimiento personas que COBRE MAS DE 1350 $

select NOMBRE , APELLIDOS , F_NACIMIENTO


from EMPLEADOS
where SALARIO > 1350

Lección 5

Devuelve personas que son altas o bien, son rubias con gafas

select NOMBRE
from PERSONAS
where ALTA = 'S' or (RUBIA = 'S' and GAFAS = 'S')

Devuelve empleados que son mujeres y cobran mas de 1300 $

select NOMBRE,APELLIDOS
from EMPLEADOS
where SEXO = 'M'
and SALARIO > 1300

Lección 6

Devuelve el SALARIO MEDIO de los empleados que son HOMBRES.Renombre la cabecera resultado

select avg(SALARIO) as MEDIA_SALARIO_HOMBRES


from EMPLEADOS
where SEXO = 'H'

Devuelve en la misma fila el SALARIO MAXIMO Y MINIMO de entre todos los empleados

select min(SALARIO) as SALARIO_MINIMO, max(SALARIO) as SALARIO_MAXIMO


from EMPLEADOS

Construya una consulta que responda: ¿Que cuesta pagar a todas las mujeres en total?

select sum(SALARIO) as TOTAL_SALARIO_MUJERES


from EMPLEADOS
where SEXO = 'M

Lección 7

Devuelve el salario MEDIO, máximo y mínimo de los empleados AGRUPADO POR SEXO

select SEXO , avg(SALARIO) as SALARIO_MEDIO ,


min(SALARIO) as SALARIO_MINIMO ,
max(SALARIO) as SALARIO_MAXIMO
from EMPLEADOS
group by SEXO
Devuelve CUANTOS PERROS y CUANTOS GATOS han pasado por el centro y YA NO ESTÁN EN EL
CENTRO

select ESPECIE , count(*) as BAJAS


from MASCOTAS
where ESTADO = 'B'
group by ESPECIE

Devuelve CUANTOS PERROS MACHOS HAY actualmente en el AGRUPADO POR UBICACION.

select UBICACION , count(*) as PERROS_MACHO


from MASCOTAS
where ESTADO = 'A'
and ESPECIE = 'P'
and SEXO = 'M'
group by UBICACION

Lección 8

Devuelve LAS UBICACIONES del centro de mascotas QUE TIENE ENTRE 2 y 3 EJEMPLARES.

select UBICACION , count(*) as EJEMPLARES


from MASCOTAS
where ESTADO = 'A'
group by UBICACION
having count(*) between 2 and 3

Lección 9

Obtenga una lista de las personas de la tabla PERSONAS, donde primero aparezcan las rubias,
después las altas, y finalmente las que llevan gafas. De manera que la primera persona de la lista,
si la hay, será rubia alta y sin gafas, y la última, si la hay, no será rubia ni alta y llevará gafas.

select *
from PERSONAS
order by RUBIA desc, ALTA desc, GAFAS

Obtenga el número actual de ejemplares de cada ubicación del centro de mascotas, que tengan
dos o más ejemplares ordenado de mayor a menor por número de ejemplares y en segundo
término por ubicación.

select UBICACION, count(*) as EJEMPLARES


from MASCOTAS
where ESTADO = 'A'
group by UBICACION
having count(*) > 1
order by count(*) desc, UBICACION
Lección 10

¿Qué empleados se apellidan Calvo?

select *
from EMPLEADOS
where APELLIDOS like '%calvo%'

Considerando que en la tabla VEHICULOS el campo PROX_ITV guarda la fecha de la próxima ITV
que ha de pasar cada vehículo:
¿Qué vehículos que nunca han pasado la ITV deben pasar la primera revisión durante el año 2011?

select *
from VEHICULOS
where PROX_ITV between '20110101' and '20111231'
and ULTI_ITV is null

Lección 12

Devuelva las COMBINACIONES posibles ENTRE los PANTALONES Y los CALZADOS, sin más
columnas que la descripción de cada prenda.

select P.PANTALON , Z.CALZADO


from PANTALONES P , CALZADOS Z

Lección 13

Construya una consulta SQL que devuelva EL PESO MEDI ODE TODAS LAS MUDAS confeccionables
ENTRE CAMISAS Y PANTALONES.

select avg( C.PESO_GR + P.PESO_GR) PESO_MEDIO_MUDAS


from CAMISAS C , PANTALONES P

Devuelva el peso medio de todas las mudas confeccionables entre camisas y pantalones agrupado
por camisa. Modifique la consulta de manera que devuelva el mismo resultado pero de los grupos
que el peso medio es superior a 850 gramos

select C.CAMISA , avg( C.PESO_GR + P.PESO_GR) PESO_MEDIO_MUDAS


from CAMISAS C , PANTALONES P
group by C.CAMISA
having avg( C.PESO_GR + P.PESO_GR) > 850

Devuelva las combinaciones de las camisas con los pantalones de manera que: LA PRIMERA
CAMISA SE COMBINE CON TODOS LOS PANTALONES MENOS CON EL PRIMERO, la segunda camisa
se combine con todos los pantalones menos con el segundo, y así sucesivamente.

select *
from CAMISAS C , PANTALONES P
where C.ID_CAMISA != P.ID_PANTALON
Devuelva la lista de prendas de una maleta que contiene todas las camisas, pantalones y calzados.

select concat('Camisa de ',CAMISA) as PRENDA


from CAMISAS
union all
select concat('Pantalón de ',PANTALON)
from PANTALONES
union all
select concat('Calzado: ',CALZADO)
from CALZADOS

Lección 14

Devuelva los cursos en que se ha matriculado el alumno con identificador 1

select C.TITULO CURSO


from ALUMNOS_CURSOS AC, CURSOS C
where AC.ID_CURSO = C.ID_CURSO
and AC.ID_ALUMNO = 1

¿Cuantos cursos imparte cada profesor? Construya una consulta que responda a esta cuestión de
modo que el resultado muestre el nombre completo del profesor acompañado del número de
cursos que imparte

select P.NOMBRE, P.APELLIDOS , count(1) CURSOS


from PROFESORES P, CURSOS C
where P.ID_PROFE = C.ID_PROFE
group by P.NOMBRE, P.APELLIDOS

¿Cuántos alumnos hay matriculados en cada uno de los cursos? Construya una consulta que
responda a esta cuestión de modo que el resultado muestre el título del curso acompañado del
número de alumnos matriculados.

Modifique la anterior consulta de modo que muestre aquellos cursos que el número de alumnos
matriculados sea exactamente de dos alumnos.

select C.TITULO CURSO, count(1) ALUMNOS


from ALUMNOS_CURSOS AC, CURSOS C
where AC.ID_CURSO = C.ID_CURSO
group by C.TITULO

having count(1) = 2

Lección 15

Construya una consulta que resuelva el número de cursos que imparte cada profesor usando la
cláusula INNER JOIN

select P.NOMBRE, P.APELLIDOS , count(1) CURSOS


from PROFESORES P inner join CURSOS C
on P.ID_PROFE = C.ID_PROFE
group by P.NOMBRE, P.APELLIDOS
Realice una consulta entre las tablas CURSOS, ALUMNOS y ALUMNOS_CURSOS de modo que
aparezcan los alumnos matriculados en cada curso pero mostrando todos los cursos aunque no
tengan alumnos matriculados.

select C.TITULO CURSO, A.NOMBRE,A.APELLIDOS


from (ALUMNOS_CURSOS AC inner join ALUMNOS A
on AC.ID_ALUMNO = A.ID_ALUMNO) right join CURSOS C
on AC.ID_CURSO = C.ID_CURSO

Lección 17

Devuelva la media de salarios de la tabla EMPLEADOS agrupado por sexo. Redondee la media de
salarios a un solo decimal y decodifique la columna sexo para que aparezca el literal HOMBRES y
MUJERES en lugar de H y M. No olvide rebautizar las columnas con un alias apropiado.

select if(SEXO='M','MUJERES','HOMBRES') SEXO , round(avg(SALARIO),1) MEDIA


from EMPLEADOS
group by if(SEXO='M','MUJERES','HOMBRES')

Sobre la tabla EMPLEADOS que devuelva el nombre, los apellidos, la fecha de nacimiento y la edad
actual en años de cada empleado. Para aquellos empleados con 18 años o más.
Nota: la edad de un empleado en años es el número de días transcurridos desde el nacimiento
dividido entre los 365 días que tiene un año.

select NOMBRE, APELLIDOS, F_NACIMIENTO, truncate( datediff(current_date,f_nacimie


nto) / 365 , 0) EDAD
from EMPLEADOS
where truncate( datediff(current_date,f_nacimiento) / 365 , 0) >= 18

Realice una consulta sobre la tabla vehículos que devuelva el número de vehículos que deben
pasar la revisión agrupado por el año en que deben pasarla.

select date_format(PROX_ITV,'%Y') PERIODO_ITV, count(1) VEHICULOS


from VEHICULOS
group by date_format(PROX_ITV,'%Y')

También podría gustarte