----------------------------------------------------------------------------------------------------
----------------------------------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