lunes, 27 de octubre de 2014

Solución - Tienda Informática



----------------------------------------------------------------------------------------------------
----------------------------------ELIMINA LAS TABLAS SI EXISTEN-------------------------------------
----------------------------------------------------------------------------------------------------

drop table if exists articulos;

drop table if exists fabricantes;


----------------------------------------------------------------------------------------------------
------------------------------------------CREA LAS TABLAS-------------------------------------------
----------------------------------------------------------------------------------------------------

create table fabricantes(

clavefabricante serial,
nombre varchar (30),
constraint pkfabricantes primary key (clavefabricante)
);

create table articulos(

clavearticulo serial,
nombrearticulo varchar (30),
precio decimal (10,3),
clavefabricante int4,
constraint pkarticulos primary key (clavearticulo)
);



----------------------------------------------------------------------------------------------------
-----------------------------------------ALTERA LAS TABLAS -----------------------------------------
----------------------------------------------------------------------------------------------------

alter table articulos

add constraint fkarticulos foreign key (clavefabricante)
references fabricantes (clavefabricante) on delete restrict on update restrict;


----------------------------------------------------------------------------------------------------
----------------------------------------ALIMENTA LAS TABLAS-----------------------------------------
----------------------------------------------------------------------------------------------------

insert into fabricantes values (1,'Kingston');

insert into fabricantes values (2,'Adata');
insert into fabricantes values (3,'Logitech');
insert into fabricantes values (4,'Lexar');
insert into fabricantes values (5,'Seagate');

insert into articulos values (1,'Teclado',100,3);

insert into articulos values (2,'Disco Duro 300 Gb',500,5);
insert into articulos values (3,'Mouse',80,3);
insert into articulos values (4,'Memoria USB',140,4);
insert into articulos values (5,'Memoria RAM',290,1);
insert into articulos values (6,'Disco Duro Extraible 250 Gb',650,5);
insert into articulos values (7,'Memoria USB',279,1);
insert into articulos values (8,'DVD Rom',450,2);
insert into articulos values (9,'CD Rom',200,2);
insert into articulos values (10,'Tarjeta de Red',180,3);



----------------------------------------------------------------------------------------------------
---------------------------------------------CONSULTAS----------------------------------------------
----------------------------------------------------------------------------------------------------

--a) Obtener todos los datos de los productos de la tienda


select * from articulos;



--b) Obtener los nombres de los productos de la tienda


select nombrearticulo from articulos;



--c) Obtener los nombres y precio de los productos de la tienda


select nombrearticulo, precio from articulos; 



--d) Obtener los nombres de los artículos sin repeticiones


select distinct nombrearticulo from articulos;



--e) Obtener todos los datos del  artículo cuya clave de producto es ‘5’


select * from articulos where clavefabricante= 5;



--f) Obtener todos los datos del  artículo cuyo nombre del producto es Teclado


select * from articulos where lower(nombrearticulo) = 'teclado';



--g) Obtener todos los datos de la Memoria RAM y memorias USB


select * from articulos where lower(nombrearticulo) in ('memoria ram', 'memoria usb');



--h) Obtener todos los datos de los artículos que empiezan con ‘M’


select * from articulos where lower(nombrearticulo) like 'm%';



--i) Obtener el nombre de los productos donde el precio sea  $ 100


select nombrearticulo from articulos where precio = 100;



--j) Obtener el nombre de los productos donde el precio sea mayor a $ 200


select nombrearticulo from articulos where precio > 200;



--k) Obtener todos los datos de los artículos cuyo precio este entre $100 y $350


select * from articulos where precio between 100 and 350;



--l) Obtener el precio medio de todos los productos (AVG)


select avg(precio) from articulos;



--m) Obtener el precio medio de los artículos cuyo código de fabricante sea 2


select avg(precio) from articulos where clavefabricante = 2;



--n) Obtener el nombre y precio de los artículos ordenados por Nombre


select nombrearticulo, precio from articulos order by nombrearticulo;



--o) Obtener todos los datos de los productos ordenados descendentemente por Precio


select * from articulos order by precio desc;



--p) Obtener el nombre y precio de los artículos cuyo precio sea mayor a $ 250 y ordenarlos descendentemente por precio y luego ascendentemente por nombre


select nombrearticulo,precio from articulos where precio > 250 order by precio desc, nombrearticulo asc;



--q) Añade un nuevo producto: Clave del producto 11, Altavoces de $ 120  del fabricante 2


insert into articulos values (11,'Altavoces',120,2);



--r) Cambia el nombre del producto 6 a ‘Impresora Laser’


update articulos set nombrearticulo = 'Impresora Laser' where clavearticulo = 6;



--s) Aplicar un descuento del 10% a todos los productos.


update articulos*1.10;



--t) Aplicar un descuento de $ 10 a todos los productos cuyo precio sea mayor o igual a $ 300


update articulos set precio = (precio-10) where precio>=300;



--u) Borra el producto numero 6


delete from articulos where clavearticulo=6;

0 comments:

Publicar un comentario