SQL Ejercicios
SQL Ejercicios
SQL Ejercicios
2 Gestión de empleados
1.2.1 Modelo entidad/relación
--SELECT DISTINCT apellido1 FROM empleado (Solo pilla un campo igual si esta repetido solo
pilla uno)
--SELECT * (todos) FROM empleado WHERE apellido1=’Ruiz’ SELECCIONA DESDE TODOS LOS
LADOS EN EMPLEADO DONDE EL PRIMER APELLIDO ES ‘Ruiz’
SELECT * FROM `empleado` WHERE nombre LIKE 'A%'; SELECCIONAR LOS NOMBRES QUE
EMPIEZEN CON UNA A POR ESO SE PONE A%
SI FUESE QUE INCLUYAN UNA A SERIA %A% POR K HAY TEXTO DELANTE Y DETRÁS
SELECT * FROM `empleado` WHERE nombre LIKE '%A'; QUE CONCLUYA CON UNA A
INNER JOIN
SELECT E.nif, E.nombre, D.nombre, D.presupuesto, D.gastos, FROM empleados E INNER JOIN
departamento D
--Seleccione el nomre y apellido de los empleados que trabajan para departamerntos con un
presupuesto mayor a 115.000€
WHERE codigo_departamento IN
SUM() suma
AVG() average
SELECT*
FROM departamento
SELECT AVG(presupuesto)
FROM departamento
);
FROM empleado E
ASC= ASCENDENTE
DESC= DESCENDENTE
LIMIT= QUE SACE N VALORES DESEADOS, LIMIT 1 (UN VALOR), LIMIT 3 (TRES VALORES)…
TOP= TOP 2 TE MUESTRA LOS DOS PRIMEROS TOP 1 UNO TOP 3 LOS TRES….
SI NO PONEMOS EL WHERE NOS LO PONDRIA A TODA LA TABLA POR ESO HAY QUE PONER EL
WHERE Y ESPECIFICAR EL 4
--Elimine la tabla todos los empleados que trabajan en el departamento con un presupuesto
mayor o igual a 100000
WHERE departamento IN
);
SAKILA
Select*
FROM actor
FROM actor
SELECT*
FROM actor
SELECT*
FROM actor
PONEMOS DOS GUIONES BAJOS PARA OCUPAR LOS DOS PRIMEROS HUECOS Y ASI DECIMOS
QWUE COMPRUEBE LA TERCERA LETRA QUE SEA B Y DESPUES PONEMOS % POR QUE
OBVIAMENTE HAY MAS TEXTO
SELECT*
FROM city
WHERE country_id = 61
SELECT*
FROM city
AS= SE USA PARA “CREAR UNA NUEVA TUPLA” TEMPORAL PARA MOSTRAR RESULTADOS
--Primero insertamos una nueva tupla CON EL MISMO FABRICANTE QUE OTRO DE LA TABLA
PARA EL PROXIMO EJERCICIO
--O SINO->
--Seleccione el nombre y precio de todos los productos con un precio mayor o igual a 150€ y
ordene primero por precio(en orden descendente) y luego haz otra consulta donde el nombre
lo ordenes de forma ascendente
FROM producto
DESC= Descendente
FROM producto
PONERLO ORDER BY nombre ASC O PONER SOLO ORDER BY nombre ES IRRELEVANTE POR
QUE POR DEFECTO TE LO ORDENA DE FORMA ASCENDENTE
--Seleccione todos los datos de los productos[SELECT(*)], incluidos todos los datos del
fabricante de cada producto
SELECT * FROM producto P, fabricante F
--Seleccione el nombre del producto, el precio, y el nombre del fabricante de todos los
productos.
ON producto.codigo_fabricante = fabricante.codigo;
--Seleccione el precio promedio de los productos de cada fabricante, mostrando solo el código
del fabricante
GROUP BY F.nombre;
--OTRA OPCION->
ON producto.codigo_fabricante = fabricante.codigo
GROUP BY fabricante.nombre;
CON ESTE SEGUNDO, SACAREMOS EL NOMBRE DE EL FABRICANTE SINO COMO EN EL
PRIMERO, SACA SOLO EL CODIGO
--Seleccione los nombre de los fabricantes cuyos productos tienen un precio promedio mayor
o igual a 200€
SELECT fabricante.nombre
ON producto.codigo_fabricante = fabricante.codigo
GROUP BY fabricante.nombre
--OTRA OPCION->
SELECT F.nombre
GROUP BY F.nombre
FROM producto
--OTRA OPCION->
FROM product
LIMIT 25;
--Selecciona el nombre de cada fabricante junto con el nombre y precio de su producto mas
caro
AND producto.precio=
SELECT MAX(P.precio)
FROM producto P
);
AQUÍ COMO VEMOS MEZCLAMOS EL TEMA DE PONER ABREVIATURAS COMO F., P. Y PONER EL
NOMBRE COMPLETO
ASI COMPROVAMOS COMO SE PUEDEN MEZCLAR LAS DOS COSAS Y USARE LA FORMA MAS
FACIL QUE SE ME HAGA.
OTRA OPCION->
producto.codigo¨_fabricante = fabricante.codigo
AND producto.precio=
SELECT MAX(precio)
FROM producto
);
COMO AQUÍ VEMOS ES IGUAL SI PONEMOS JOIN SOLO O UN INNER JOIN, ES INDIFERENTE
Seleccione el nombre de cada fabricante que tenga un precio promedio superior a 200€ y
contenga al menos 2 productos diferentes.
GROUP BY P.nombre
FROM producto P
Lista el nombre de todos los fabricsantes en una columna, y en otra columna obtenga en
mayúsculas los dos primeros caracteres del nombre del fabricante
FROM fabricante
Lista los nombres y los precios de todos los productos de la tabla producto, redondeando el
valor del precio
FROM producto
TODOS DISTINTOS DE CODIGO FABRICANTE SIN K SE REPITAN
FROM producto
Lisra todos los productos que tengan un precio entre 80€P y 300€]. Sin utilizar el operador
BETWEEN
SELECT*
FROM producto
WHERE precio
FROM producto
LISTA LOS NOMBRES DE LOS FABRICANTES CUYO NOMBRE EMPIECE `POR LA LETRA S
SELECT nombre
FROM fabricante
WHERE nombre LIKE ‘s%’
LEFT JOIN->
RIGHT JOIN->