Você está na página 1de 10

create database AOBA;

USE AOBA ;

###drop database AOBAteste1;

-- -----------------------------------------------------

-- Table mydb.Ingredients

-- -----------------------------------------------------

CREATE TABLE INGREDIENTE (

idIngrediente INT primary key AUTO_INCREMENT NOT NULL,

nome VARCHAR(45) NOT NULL,

categoria VARCHAR(45) NOT NULL,

descricao VARCHAR(45) NOT NULL

);

-- -----------------------------------------------------

-- Table mydb.PRODUTOS

-- -----------------------------------------------------

CREATE TABLE PRODUTO (

idProduto INT PRIMARY KEY AUTO_INCREMENT NOT NULL,

imagem BLOB,

nome VARCHAR(45) NOT NULL,

categoria varchar(30),

tipo VARCHAR(45) NOT NULL,

descricao VARCHAR(45) NOT NULL,

valor FLOAT NOT NULL,

quantidade INT NOT NULL

);

-- -----------------------------------------------------
-- Table mydb.Ingredients

-- -----------------------------------------------------

CREATE TABLE COMPOSICAO (

idComposicao INTEGER primary key AUTO_INCREMENT NOT NULL,

codIngrediente INTEGER NOT NULL,

FOREIGN KEY (codIngrediente) REFERENCES INGREDIENTE(idIngrediente),

codProduto INTEGER NOT NULL,

FOREIGN KEY (codProduto) REFERENCES PRODUTO(idProduto),

descricao VARCHAR(45) NOT NULL

);

-- -----------------------------------------------------

-- Table mydb.USUARIO

-- -----------------------------------------------------

Create table USUARIO(

idUsuario INT PRIMARY KEY AUTO_INCREMENT NOT NULL,

nome VARCHAR(100) NOT NULL,

cargo integer NOT NULL,

email VARCHAR (50) NOT NULL,

dataCadastro DATE NOT NULL,

senha varchar(30),

ativo boolean not null

);

###cargo varchar(100) NOT NULL,

#### pensamos em atribuir nome para os cargos depois, mas aqui deixar como 1,2,3

-- -----------------------------------------------------

-- Table mydb.COMANDA

-- -----------------------------------------------------

CREATE TABLE COMANDA (


idComanda INT PRIMARY KEY AUTO_INCREMENT NOT NULL,

estado VARCHAR(45) NOT NULL,

quantidadeClientes INT NOT NULL,

numMesa INT NOT NULL,

datacomanda datetime not null,

###############

codUsuario INTEGER NOT NULL,

FOREIGN KEY(codUsuario) REFERENCES USUARIO(idUsuario)

);

-- -----------------------------------------------------

-- Table mydb.ITENS

-- -----------------------------------------------------

CREATE TABLE ITEM (

idItem INT PRIMARY KEY AUTO_INCREMENT NOT NULL,

quantidade INT NOT NULL,

codComanda INT NOT NULL,

estado integer NOT NULL,

FOREIGN KEY (codComanda)

REFERENCES COMANDA (idComanda),

codProduto INT NOT NULL,

FOREIGN KEY (codProduto)

REFERENCES PRODUTO (idProduto),

codUsuario INT NOT NULL,

FOREIGN KEY (codUsuario)

REFERENCES Usuario(idUsuario)

);
## Dados inseridos pelo CHAT GPT

INSERT INTO USUARIO (ativo, nome, cargo, email, dataCadastro,senha)

VALUES

(1,'Fernando', 1, 'fernando@email.com', '2003-10-09','fernando1234'),

(1,'Vitória', 2, 'vitoria@email.com', '2013-10-09','vitoria1234'),

(1,'Reuel', 3, 'reuel@email.com', '2020-10-09','reuel1234'),

(1,'Carol', 1, 'carol@email.com', '2021-10-09','carol1234'),

(0,'Cesar', 2, 'cesar@email.com', '2023-10-09','cesar1234');

INSERT INTO INGREDIENTE (nome, categoria, descricao)

VALUES

('Ingrediente1', 'Categoria1', 'Descrição1'),

('Ingrediente2', 'Categoria2', 'Descrição2'),

('Ingrediente3', 'Categoria1', 'Descrição3'),

('Ingrediente4', 'Categoria3', 'Descrição4'),

('Ingrediente5', 'Categoria2', 'Descrição5');

INSERT INTO PRODUTO (nome, tipo,categoria,descricao, valor, quantidade)

VALUES

('Produto1', 'Tipo1', "categoria1", 'Descrição1', 10.99, 100),

('Produto2', 'Tipo2', "categoria2", 'Descrição2', 15.99, 150),

('Produto3', 'Tipo1', "categoria3", 'Descrição3', 12.49, 80),

('Produto4', 'Tipo3', "categoria4", 'Descrição4', 8.99, 200),

('Produto5', 'Tipo2', "categoria5", 'Descrição5', 18.99, 120);

INSERT INTO COMPOSICAO (codIngrediente, codProduto, descricao)

VALUES

(1, 1, 'Descrição1'),
(2, 2, 'Descrição2'),

(3, 1, 'Descrição3'),

(4, 4, 'Descrição4'),

(5, 3, 'Descrição5');

INSERT INTO COMANDA (estado, quantidadeClientes, numMesa, codUsuario, datacomanda)

VALUES

('Aberta', 4, 1, 1,'2023-03-03 00:00:01'),

('Fechada', 2, 2, 2,'2023-03-03 00:20:01'),

('Aberta', 3, 3, 3,'2023-03-03 00:40:01'),

('Fechada', 5, 4, 4,'2023-03-03 02:20:01'),

('Aberta', 2, 5, 5,'2023-03-03 04:00:01');

INSERT INTO ITEM (quantidade, codComanda, estado, codProduto, codUsuario)

VALUES

(2, 1, 1, 3, 4),

(1, 2, 0, 5, 2),

(3, 3, 1, 1, 3),

(1, 4, 0, 2, 1),

(4, 5, 1, 4, 5);

select * from item;

##Comandos###################################################################
################################################

select * from USUARIO;

#### Visualizar Ordem de cadastro de usuário######


select idUsuario, nome, datacadastro, cargo

from usuario

order by datacadastro asc;

#########3 mostrar ingredientes e produtos ############33

#### visualização do cardápio


cardápio------------------------------------------------------------------------------------------------------------------
-----------------------

create view cardapio as

select imagem, nome,valor, descricao,categoria

from produto

order by nome asc;

##visualizar cardapio

select * from cardapio;

###----------visualiza quem abriu a comandas


abertas--------------------------------------------------------------------------------------------------------------------
-----------

create view comandas_abertas as

select usuario.nome, iditem, estado

from usuario, item

where idusuario = codusuario

and estado = 1

order by iditem;

##visualizar comandas abertas

select * from comandas_abertas;


#---------------Ordenar funcionario ativos por ordem
alfabética-----------------------------------------------------------------------------------------------------------------
---------

create view lista_funcionario as

select nome, cargo, dataCadastro, email

from usuario

where ativo = 1

order by nome asc;

select * from lista_funcionario;

#----------------Função adicionar um novo


produto-------------------------------------------------------------------------------------------------------------------
----------

/*--------Função de exemplo---------------

CREATE FUNCTION teste (n INTEGER)

RETURNS INTEGER

BEGIN

DECLARE media float;

DECLARE result INTEGER;

SELECT AVG(salario) INTO media FROM trab

IF media > 1000 THEN

SET result = 1;

ELSE SET result = 2;

END IF;

RETURNS result;

END

-----------------------exemplo de procedimento----------------------------

CREATE PROCEDURE exemplo (IN n

INTEGER)

deterministc
BEGIN

INSERT INTO tab1 VALUES (n,‘a’,‘b’);

END

*/

delimiter <>

create procedure novoProduto(in nomeprod varchar(50),

in catprod varchar(50),

in tipoprod varchar(50),

in descprod varchar(50),

in valprod float,

in quantprod integer)

begin

declare nome_existe varchar(50);

select count(*) into nome_existe from produto where nome = nomeprod and categoria =
catprod;

if nome_existe > 0 then

select "Nome já existe" as Mensagem;

else

insert into produto (nome, categoria, tipo, descricao, valor, quantidade)

values (nomeprod, catprod, tipoprod, descprod, valprod, quantprod);

select "novo produto cadastrado com sucesso!!!" as mensagem;

end if;

end<>

##teste

##call aoba.novoProduto('produto3', 'categroria2', 'tipo1', 'produto teste', 1.0, 1);

##select*from produto;

###### adicionar quantidade em produtos existentes


------------------------------------------------------------------------

create procedure adicionar_produto (in idprod integer,

in quantprod integer)
begin

declare prod_existe integer;

select * from produto;

select count(*) into prod_existe from produto where idproduto = idprod;

if prod_existe = 0 then

select 'produto não existe';

else

update produto antes

set quantidade = quantidade + quantprod

where idproduto = idprod;

end if;

select * from produto;

end;

<>

##----- teste-----------------

call adicionar_produto(1,40);<>

select * from produto;<>

##drop procedure adicionar_produto;<>

###### remover quantidade em produtos existentes


---------------------------------------------------------------------------------------------------------------------------

create procedure remover_produto (in idprod integer,

in quantprod integer)

begin

declare prod_existe integer;

select * from produto;

select count(*) into prod_existe from produto where idproduto = idprod;

if prod_existe = 0 then

select 'produto não existe';


else

update produto antes

set quantidade = quantidade - quantprod

where idproduto = idprod;

end if;

select * from produto;

end;

<>

#####----- teste-----------------

call remover_produto(1,40);<>

select * from produto;<>

##drop procedure adicionar_produto;<>

Você também pode gostar