Está en la página 1de 6

create database Lo_Que_Diga_Sumerce DEFAULT CHARACTER SET utf8;

use Lo_Que_Diga_Sumerce;

create table cliente(


id int not null PRIMARY KEY,
nombre varchar(40) not null,
email varchar(30) not null UNIQUE,
documento int not null UNIQUE,
direccion varchar(30),
telefono int not null
)

INSERT INTO cliente(id,nombre,email,documento,direccion,telefono) values


('1','Fabian Cubillos','fabian@email.com','32580245','Calle falsa 123','7894562'),
('2','Laura Contreras','laura@gmail.com','159753852','Transv 33 Calle
2','9513654'),
('3','Adriana Jaimes','adriana@email.com','65495175','Calle Maple
456','300358965'),
('4','Jesyan Sandoval','jesyan@suemail.com','789546','Circunv 854b 33','2154623'),
('5','Andres Marcelo','andres@gmail.com','25896510','Diag 1E','2956532'),
('6','John Colmenares','john@gmail.com','956231245','Calle 78 Carre 87','7845956'),
('7','Hector Bernate','hector@email.com','3215984','Calle entreCalles','3156985'),
('8','Luis Castellanos','luis@gmail.com','45685210','Diagonal a la
Izqui','6548965'),
('9','Cesar Gutierrez','cesar@lookout.com','320515260','Calle Y Diag
12','25689898'),
('10','Lina Benitez','lina@lookout.com','42059651','Calle 45 33','222555999');

create table menu(


id int not null PRIMARY KEY,
plato varchar(45) not null,
precio int not null
)

INSERT INTO menu(id,plato,precio) values


('1','Hamburguesa','20000'),
('2','Pizza','38000'),
('3','Sushi','25000'),
('4','Paella','40000'),
('5','Fondue','36000'),
('6','Burrito','18000'),
('7','Chop Suey','30000'),
('8','Bandeja paisa','20000'),
('9','Ratatouille','23000'),
('10','Ceviche','15000');

create table metodos_pago(


id_cliente int not null,
metodo_pago_cliente varchar(45)
)

ALTER TABLE metodos_pago ADD FOREIGN KEY(id_cliente) REFERENCES cliente (id);

INSERT INTO metodos_pago(id_cliente,metodo_pago_cliente) values


('1','T. Credito, Efectivo, Nequi'),
('2','T. Debito, Bitcoin'),
('3','Efetcivo'),
('4','T. Credito, T. debido'),
('5','Efectivo, T. Credito'),
('6','Nequi, Daviplata, Bitcoin'),
('7','Bitcoin'),
('8','Efetivo, T.Debito'),
('9','Nequi'),
('10','Daviplata');

create table pedidoxcliente(


id int not null PRIMARY KEY,
id_cliente int not null,
id_plato int not null,
cantidad int not null
)

ALTER TABLE pedidoxcliente ADD FOREIGN KEY(id_cliente) REFERENCES cliente (id);


ALTER TABLE pedidoxcliente ADD FOREIGN KEY(id_plato) REFERENCES menu (id);

INSERT INTO pedidoxcliente(id,id_cliente,id_plato,cantidad) values


('1','1','1','2'),
('2','2','2','3'),
('3','3','3','2'),
('4','4','4','4'),
('5','5','5','1'),
('6','6','6','5'),
('7','7','7','6'),
('8','8','8','2'),
('9','9','9','3'),
('10','10','10','5');

create table confirmacion(


id int not null PRIMARY KEY,
numero_orden int not null,
resumen_orden varchar(70) not null,
confirmacion bool not null
);

ALTER TABLE confirmacion ADD FOREIGN KEY(numero_orden) REFERENCES pedidoxcliente


(id);

INSERT INTO confirmacion(id,numero_orden,resumen_orden,confirmacion) values


('1','1','Hamburguesa',true),
('2','2','Pizza',false),
('3','3','Sushi',false),
('4','4','Paella',false),
('5','5','Fondue',true),
('6','6','Burrito',true),
('7','7','Chop Suey',true),
('8','8','Bandeja paisa',true),
('9','9','Ratatouille',true),
('10','10','Ceviche',true);

create table empleado(


id int not null PRIMARY KEY,
nombre varchar(40) not null,
email varchar(30) not null UNIQUE,
documento int not null UNIQUE,
direccion varchar(30),
telefono int not null
);

INSERT INTO empleado(id,nombre,email,documento,direccion,telefono) values


('1','Mauricio Acosta','mauricio@gmail.com','102563','Calle 1','7265159'),
('2','Viviana Zarate','viviana@gmail.com','256341','Calle2','3256892'),
('3','Jorge Molinar','jorge@gmail.com','542368','Calle 3','2356485'),
('4','Andres Agudelo','andres@email.com','208052','Calle 4','3215425'),
('5','Jose Quevedo','jose@email.com','10258963','Calle 5','2541526'),
('6','Luz Hernandez','luz@email.com','124564879','Calle 6','8521456'),
('7','Ricardo Marin','ricardo@gmail.com','321654987','Calle 7','6547852'),
('8','Cristian Romero','cristian@gmail.com','269557','Calle 8','9632145'),
('9','Juan Rodriguez','juan@outlook.com','102588','Calle 9','7896321'),
('10','Beatriz Cuervo','beatriz@outlook.com','256956632','Calle 10','5423698');

create table cargo(


id int not null PRIMARY KEY,
id_empleado int not null,
cargo varchar(15)
);

ALTER TABLE cargo ADD FOREIGN KEY(id_empleado) REFERENCES empleado (id);

INSERT INTO cargo(id, id_empleado,cargo) values


('1','1','Cocinero/a'),
('2','2','Cocinero/a'),
('3','3','Cocinero/a'),
('4','4','Mesero/a'),
('5','5','Mesero/a'),
('6','6','Mesero/a'),
('7','7','Mesero/a'),
('8','8','Aseador/a'),
('9','9','Aseador/a'),
('10','10','Aseador/a');

create table horas(


id int not null PRIMARY KEY,
id_empleado int not null,
check_in time not null,
check_out time not null
);

ALTER TABLE horas ADD FOREIGN KEY(id_empleado) REFERENCES empleado (id)

INSERT INTO horas(id, id_empleado,check_in,check_out) values


('1','1','8:00','16:00'),
('2','2','16:00','0:00'),
('3','3','0:00','8:00'),
('4','4','8:00','16:00'),
('5','5','16:00','0:00'),
('6','6','0:00','8:00'),
('7','7','8:00','16:00'),
('8','8','8:00','16:00'),
('9','9','16:00','0:00'),
('10','10','0:00','8:00');
create table acumulado_horas(
id int not null PRIMARY KEY,
id_horas int not null,
id_empleado int not null,
horasxempleado int not null
);

ALTER TABLE acumulado_horas ADD FOREIGN KEY(id_horas) REFERENCES horas (id);


ALTER TABLE acumulado_horas ADD FOREIGN KEY(id_empleado) REFERENCES empleado (id);

INSERT INTO acumulado_horas(id,id_horas,id_empleado,horasxempleado)values


('1','1','1','192'),
('2','2','2','190'),
('3','3','3','180'),
('4','4','4','178'),
('5','5','5','192'),
('6','6','6','192'),
('7','7','7','192'),
('8','8','8','150'),
('9','9','9','120'),
('10','10','10','135');

______________________________________________________________

- Visualizar los platos que han sido confirmados con el nombre del plato y la
cantidad del mismo y el nombre de quien lo pidio.

SELECT nombre, cantidad, resumen_orden as Pedido, confirmacion


FROM cliente
INNER JOIN pedidoxcliente ON cliente.id = pedidoxcliente.id_cliente
INNER JOIN confirmacion ON pedidoxcliente.id = confirmacion.numero_orden
WHERE confirmacion = true;

- Visualizar los platos que NO han sido confirmados con el nombre del plato y la
cantidad del mismo y el nombre de quien lo pidio.

SELECT nombre, cantidad, resumen_orden as Pedido, confirmacion


FROM cliente
INNER JOIN pedidoxcliente ON cliente.id = pedidoxcliente.id_cliente
INNER JOIN confirmacion ON pedidoxcliente.id = confirmacion.numero_orden
WHERE confirmacion = false

- Nombre, plato y cantidad donde la cantidad sea 2.

SELECT nombre, plato, cantidad


FROM pedidoxcliente
INNER JOIN cliente ON pedidoxcliente.id_cliente = cliente.id
INNER JOIN menu ON pedidoxcliente.id_plato = menu.id
WHERE cantidad = 2;

- Mostrar todas las ordenes que ha pedido 'Fabian Cubillos' con el nombre del plato
y la cantidad

SELECT nombre, plato, cantidad


FROM cliente
INNER JOIN pedidoxcliente ON cliente.id = pedidoxcliente.id_cliente
INNER JOIN menu ON pedidoxcliente.id_plato = menu.id
WHERE nombre = 'Fabian Cubillos';

- Mostrar los metodos de pago que tiene 'Luis Castellanos'

SELECT nombre, metodo_pago_cliente


FROM cliente
INNER JOIN metodos_pago ON cliente.id = metodos_pago.id_cliente
WHERE nombre = 'Luis Castellanos';

- Mostrar toda la informacion del cliente, la cantidad del pedido y el nombre del
plato de los pedidos que no fueron confirmados

SELECT cliente.*, cantidad, resumen_orden


FROM cliente
INNER JOIN pedidoxcliente ON cliente.id = pedidoxcliente.id_cliente
INNER JOIN confirmacion ON pedidoxcliente.id = confirmacion.numero_orden
WHERE confirmacion = false;

- Mostrar el numero de horas que cada cocinero/a

SELECT nombre, cargo, horasxempleado


FROM empleado
INNER JOIN cargo ON empleado.id = cargo.id_empleado
INNER JOIN acumulado_horas ON empleado.id = acumulado_horas.id_empleado
WHERE cargo = 'cocinero/a';

- Mostrar el nombre de los Meseros/as

SELECT nombre, cargo


FROM empleado
INNER JOIN cargo ON empleado.id = cargo.id_empleado
WHERE cargo = 'Mesero/a';

- Mostrar los empleados que trabajen mas de 120 horas

SELECT nombre, cargo, horasxempleado as Horas


FROM empleado
INNER JOIN cargo ON empleado.id = cargo.id_empleado
INNER JOIN acumulado_horas ON empleado.id = acumulado_horas.id_empleado
WHERE horasxempleado > 120;

- Mostrar los empleados que entren a trabajar a las de las 16:00

SELECT nombre, cargo, check_in as Entrada


FROM empleado
INNER JOIN cargo ON empleado.id = cargo.id_empleado
INNER JOIN horas ON empleado.id = horas.id_empleado
WHERE check_in = '16:00';

También podría gustarte