11.- Obtener un listado de artículos, incluyendo por cada articulo los datos de su nombre, precio y el nombre de su fabricante.
Sentencia SQL:
SELECT art.NOMBRE, art.PRECIO, fab.NOMBRE Nombre_Fabricante from ARTICULOS art, fabricantes fab where art.CODFRABICANTE = fab.CODIGO;
Resultado de la consulta
12.- Obtener el precio medio de los productos de cada fabricante, mostrando el Código del fabricante.
Sentencia SQL:
select CODFRABICANTE, AVG(PRECIO) as promedio from ARTICULOS GROUP by CODFRABICANTE;
13.- Obtener el precio medio de los productos de cada fabricante, mostrando el nombre del fabricante.
Sentencia SQL:
select FABRICANTES.NOMBRE, AVG(PRECIO) as promedio from ARTICULOS , FABRICANTES WHERE ARTICULOS.CODFRABICANTE = FABRICANTES.CODIGO GROUP by FABRICANTES.NOMBRE;
Resultado de la consulta
14.- Obtener el nombre de los fabricantes que ofrezcan productos cuyo precio medio sea igual a $5445.
select fab.NOMBRE as EMPRESA from fabricantes fab inner JOIN articulos art on fab.CODIGO = art.CODFRABICANTE GROUP BY EMPRESA HAVING AVG(precio) = 5445;
* A la tabla Fabricantes le he asignado un alias fab (para no escribir fabrica.nombre)
* A la tabla Articulos le he asignado un alias art (para no escribir articulos.codfrabicante)
* Al campo Fabrica.NOMBRE ó fab.NOMBRE le asige un alias EMPRESA.
* INNER JOIN devuelve todas las filas de ambas tablas, donde hay un Claves en común.
(En las consultas anteriores he escrito todos los componetes de ambas tablas ejemplo:
Select articulos.nombre , articulos.codfrabicante, articulos.precio, fabricantes.codigo, fabricantes.nombre from articulos, fabricantes where ........
* GROUP BAY agrupa los resultado por un nombre de campo.
* HAVING similar al where pero es tratado como función.
* AVG devuelve el promedio.
Resultado de la consulta
14.- Obtener el nombre y precio del producto mas barato.
Sentencia SQL:
select nombre, precio from articulos order by precio limit 1;
Resultado de la consulta
16.-
Sentencia SQL:
select a.nombre, a.precio, f.NOMBRE as Fabricante from articulos a inner join fabricantes f on a.codfrabicante = codigo group by f.nombre order by precio desc;
Resultado de la consulta
17.- Añadir un nuevo producto del fabricante 2 lampara USB $7990.
insert into articulos (codigoart, nombre, precio, codfrabicante)
values (114, 'Lampara USB', 7990, 2);
Resultado de la consulta
Para ver el resultado ahora aremos un select del fabricante 2 con sus productos
select f.codigo, f.nombre, a.nombre, a.precio from fabricantes f inner join articulos a on f.codigo = codfrabicante where f.codigo = 2;
(Este select es muy completo pero solo de referencia para mostrar el registro insertado)
18.- Cambiar el nombre del articulo 108 a Impresora Láser.
select * from articulos where codigoart = 108;
Sentencia SQL:
UPDATE articulos set nombre = 'Impresora Laser' where codigoart = 8;
Resultado de la consulta
19.- Aplicar un descuento de un 10% a todos los productos.
Sentencia SQL:
update articulos set precio = precio * 0.9;
Nota: No necesita explicación todos los productos fueron rebajados en un 10%.
20.- Aplicar un descuento de un $1777 cuyo precio sea mayor o igual $20000.
Sentencia SQL:
update articulos set precio = precio - 1777 where precio >= 20000;
Eso es todo... Pronto segundo set de 20 ejercicios mas.