Está en la página 1de 3

CREATE DATABASE ferreteriadb;`

USE ferreteriadb;

-- CREACION DE TABLAS
CREATE TABLE usuarios (
id bigint AUTO_INCREMENT PRIMARY KEY,
username varchar(50),
email varchar(100),
contrasena varchar(50),
perfil varchar(20),
estado smallint
);

CREATE TABLE tiposMateriales(


id bigint AUTO_INCREMENT PRIMARY KEY,
descripcion VARCHAR(30)
);

CREATE TABLE materiales (


id bigint AUTO_INCREMENT PRIMARY KEY,
material VARCHAR(50),
descripcion VARCHAR(100),
precio decimal(10,2),
tipoMaterial bigint,
FOREIGN KEY (tipoMaterial) REFERENCES tiposMateriales (id)
);

-- CRUD C -> CREATE R -> READ U -> UPDATE D -> DELETE

-- Popularizacion de datos en la tabla de usuarios


INSERT INTO usuarios(username, email, contrasena, perfil, estado)
VALUES ('rdiaz', 'ramon.diaz@umh.edu.hn', '12345', 'admin', 1),
('alopez','alex.lopez@gmail.com', 'elpatitofeo', 'invitado',
1);

-- Consultando elementos de la tabla de usuarios


SELECT * FROM usuarios;

-- Actualizacion de datos de los registro de la tabla de usuarios


UPDATE usuarios SET email = 'ramon.diaz@umh.edu.hn', contrasena =
'54321' where id = 1

-- Eliminando elementos de la tabla de usuarios


DELETE FROM usuarios where id = 4

--
======================================================================
=====

INSERT INTO tiposMateriales (descripcion)


VALUES ('INSUMO'),
('MATERIA PRIMA'),
('MATRIAL DE EMPAQUE'),
('PRODUCTO TERMINADO');

select * from tiposMateriales;

update tiposMateriales set descripcion = 'MATERIAL DE EMPAQUE' where


descripcion = 'MATRIAL DE EMPAQUE'
--
======================================================================
=======

INSERT INTO materiales (material, descripcion, precio, tipoMaterial)


values ('BOLSA', 'Bolsa para empaque', 2.50, 3),
('RAID', 'Pestisida para las plagas', 44, 1)

select material, tiposMateriales.descripcion as 'tipoMaterial', precio


from materiales
inner join tiposMateriales on materiales.tipoMaterial =
tiposMateriales.id

select * from materiales

SELECT MAX(precio) from materiales;


SELECT MIN(precio) from materiales;
SELECT SUM(precio) from materiales;
SELECT AVG(precio) FROM materiales;

SELECT SUM(precio) FROM materiales where tipoMaterial = 3

CREATE TABLE bodega (


id bigint AUTO_INCREMENT PRIMARY KEY,
nombreBodega varchar(50),
direccion varchar(100)
);

select * from bodega;

INSERT INTO bodega (nombreBodega, direccion)


VALUES ('Primaria', 'SIGUATEPEQUE'),
('Secundaria', 'COMAYAGUA');

CREATE TABLE existencias (


id bigint AUTO_INCREMENT PRIMARY KEY,
idMaterial bigint,
idBodega bigint,
stock decimal(10,2), -- existencias
FOREIGN KEY (idMaterial) REFERENCES materiales (id),
FOREIGN KEY (idBodega) REFERENCES bodega (id)
)

INSERT INTO existencias (idMaterial, idBodega, stock) values


(7, 1, 10),
(5, 1, 50),
(4, 1, 60),
(3, 1, 15),
(6, 1, 25),
(7, 2, 2),
(5, 2, 13),
(4, 2, 19)

select * from existencias

SELECT nombreBodega, material, precio, stock, (precio * stock) as


valorStock FROM existencias
INNER JOIN materiales on existencias.idMaterial = materiales.id
INNER JOIN bodega on existencias.idBodega = bodega.id
ORDER BY valorStock DESC
-- Hacer una consulta que nos diga en cuantas bodegas mas esta este
producto
SELECT nombreBodega, material, precio, stock, (precio * stock) as
valorStock,
(SELECT COUNT(*) FROM existencias AS exis WHERE exis.idMaterial =
existencias.idMaterial AND exis.idBodega != existencias.idBodega) AS
otrasBodegas
FROM existencias
INNER JOIN materiales on existencias.idMaterial = materiales.id
INNER JOIN bodega on existencias.idBodega = bodega.id
ORDER BY valorStock DESC

También podría gustarte