Está en la página 1de 5

create database comprassf;

use comprassf;

create table cliente(


ci int not null primary key,
nombre varchar(50) not null,
sexo char,
telefono int);

create table factura(


nro int not null primary key,
fecha date not null,
monto int not null,
cic int not null,
foreign key (cic) references cliente(ci)
on update cascade
on delete cascade);

create table producto(


codigo varchar(4) not null primary key,
nombre varchar(50) not null,
precio float not null,
idcategoria integer not null,
foreign key (idcategoria) references categoria(id)
on update cascade
on delete cascade );

create table categoria(


id integer not null primary key,
descripcion varchar(50) not null);

create table detallefactura(

nrof int not null,


codigop varchar(4) not null,
cantidad int not null,
precio float not null,
primary key (nrof,codigop),
foreign key (nrof) references factura(nro)
on update cascade
on delete cascade,
foreign key (codigop) references producto(codigo)
on update cascade
on delete cascade);

--insercion de tablas clientes

insert into cliente values(111,'Joaquin Chumacero','M', 7102030);


insert into cliente values(222,'Saturdino Mamani','M',null);
insert into cliente values(333,'Fabiola Mendez','F', 2564021);

select * from cliente

-- insercion de categoria

insert into categoria values( 111, 'Accesorio de Computadoras');


insert into categoria values( 222, 'Accesorio de Redes');
--- insercion de productos

insert into producto values ('P1', 'Mouse', 10,111);


insert into producto values ('P2', 'Teclado', 15,111);
insert into producto values ('P3', 'Monitor', 100,111);
insert into producto values ('P4', 'Router', 45,222);
insert into producto values ('P5', 'Memoria_RAM_4GB', 50,111);

-- insercion de facturas

insert into factura values (1, '10/01/2018',120,222);


insert into factura values (2, '15/01/2018',40,333);
insert into factura values (3, '15/01/2018',130,222);
insert into factura values (4, '20/01/2018',50,111);

-- insercion de detalle factura

insert into detallefactura values (1,'P1',2,10);


insert into detallefactura values (1,'P3',1,100);
insert into detallefactura values (2,'P1',5,8);
insert into detallefactura values (3,'P2',2,15);
insert into detallefactura values (3,'P5',2,50);
insert into detallefactura values (4,'P5',1,50);

/*mostrar monto total por cliente */

select cic, SUM(monto)


from factura
group by cic

/* mostrar la cantidad de facturas realizadas por cliente */

select cliente.nombre,cliente.ci, count(*)


from cliente,factura
where cic=ci
group by cliente.nombre,cliente.ci

/* mostrar la cantidad vendida por producto */

select cliente.ci , cliente.nombre,sum(cantidad) as cantidad


from producto,detallefactura,factura, cliente
where codigo=codigop and nro=nrof and cic=ci and producto.nombre='Mouse'
group by cliente.ci , cliente.nombre

--update detallefactura set codigop='P5' where detallefactura.codigop='P1' and


nrof=4
--mostrar el nro , fecha, y monto de la factura realizadad por saturdino mamani

select factura.nro , factura.fecha, factura.monto


from cliente, factura

where cliente.ci=factura.cic and cliente.nombre='Saturdino Mamani'

--consulta anidada

select nro,fecha,monto
from factura
where cic in
(
select ci
from cliente
where nombre='Saturdino Mamani')

-- mostrar los productor comprados por saturdino mamani indicando nombre p cantidad
y precio

select producto.nombre, detallefactura.cantidad, detallefactura.precio ,


factura.nro-- cliente.nombre,
from cliente,factura,detallefactura,producto
where ci=cic and nro=nrof and codigop=codigo and cliente.nombre='Saturdino Mamani'

/* Mostrar el nombre de los clientes que han realizado compra de productos con
precion mayor
a 10 */

select distinct cliente.nombre , cliente.ci


from cliente,factura,detallefactura
where ci=cic and nro=nrof and detallefactura.precio > 10--and
cliente.nombre='Saturdino Mamani'

---aniddado

select nombre,ci
from cliente
where ci in (select cic
from factura
where nro in (
select nrof
from detallefactura
where precio >10))

/* Mostrar los productos que han sido vendidos */

select distinct producto.nombre


from factura,detallefactura,producto
where nro=nrof and codigop=codigo

/* Mostrar los productos que no han sido vendidos */


select nombre
from producto
where codigo not in( select codigop
from detallefactura)

select codigo
from producto

/* Mostrar los productos que vendidos el 10/01/2018 */

select distinct producto.nombre


from factura,detallefactura,producto
where nro=nrof and codigop=codigo and fecha='10/01/2018'

select * from cliente;


select * from factura;
select * from detallefactura;
select * from producto;

/*mostrar la cantidad de facturas emitidas a joquin chumacero*/


select COUNT(*) --nro,nombre
from cliente,factura

where ci=cic and nombre='Joaquin Chumacero'

/*mostrar el monto total facturado de facturas emitidas a Saturdino Mamani */


select sum(monto)
from cliente,factura

where ci=cic and nombre='Saturdino Mamani'

/*mostrar el monto minimo por saturdino mamani*/


select min(monto)
from cliente,factura

where ci=cic and nombre='Saturdino Mamani'

/*mostrar la cantidad de mouse vendidos*/

select sum(detallefactura.cantidad)
from factura,detallefactura,producto

where nro=nrof and codigo=codigop and producto.nombre='Mouse'

select * from cliente;


select * from factura;
select * from detallefactura;
select * from producto;
/*mostrar la cuantos mouse ha comprado saturdino mamani*/

select sum(detallefactura.cantidad)
from factura,detallefactura,producto,cliente

where nro=nrof and codigo=codigop and ci=cic and producto.nombre='Mouse'


and cliente.nombre='Saturdino Mamani'

select * from cliente;


select * from factura;
select * from detallefactura;
select * from producto;

/* mostrar los productos vendidos de la categoria accesorios de computadoras*/

select producto.nombre, categoria.descripcion


from producto,categoria
where
idcategoria=id and
categoria.descripcion='Accesorio de Computadoras'

/* mostrar los productos vendidos de la categoria accesorios de Redes*/

select producto.nombre, categoria.descripcion


from producto,categoria
where
idcategoria=id and
categoria.descripcion='Accesorio de Redes'

/* mostrar los clientes que han comprado productos de la categoria redes*/

select distinct cliente.ci as cliente_ci, cliente.nombre as nombre_cliente, nro as


numero_factura
from categoria,producto,detallefactura, factura , cliente
where id=idcategoria and codigo=codigop and nrof=nro and cic=ci and
categoria.descripcion='Accesorio de Computadoras'
order by factura.nro

/* mostrar las categorias que no tiene productos vendidos */

select categoria.descripcion
from categoria
where id not in(
(select idcategoria
from producto
where codigo in
(select codigop
from detallefactura)));

También podría gustarte