-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `projetobd2`
--

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

--
-- Table structure for table `acompanha`
--

CREATE TABLE `acompanha` (
  `COLHEITA_ID` int(11) NOT NULL,
  `ENOLOGO_COLABORADOR_numero` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `acompanha`
--

INSERT INTO `acompanha` (`COLHEITA_ID`, `ENOLOGO_COLABORADOR_numero`) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5);

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

--
-- Table structure for table `casta`
--

CREATE TABLE `casta` (
  `CASTA_ID` int(11) NOT NULL,
  `tipo_uva` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `casta`
--

INSERT INTO `casta` (`CASTA_ID`, `tipo_uva`) VALUES
(1, 'Cabernet Sauvignon'),
(2, 'Chardonnay'),
(3, 'Pinot Noir'),
(4, 'Syrah'),
(5, 'Sauvignon Blanc');

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

--
-- Stand-in structure for view `castas_por_regiao`
-- (See below for the actual view)
--
CREATE TABLE `castas_por_regiao` (
`RegiaoID` int(11)
,`NomeRegiao` varchar(50)
,`CastaID` int(11)
,`NomeCasta` varchar(30)
,`AreaTotal` decimal(32,0)
);

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

--
-- Table structure for table `cliente`
--

CREATE TABLE `cliente` (
  `numero_cliente` int(11) NOT NULL,
  `nome_cliente` varchar(100) DEFAULT NULL,
  `tipo` varchar(30) DEFAULT NULL,
  `nif` char(9) DEFAULT NULL,
  `morada` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `cliente`
--

INSERT INTO `cliente` (`numero_cliente`, `nome_cliente`, `tipo`, `nif`, `morada`) VALUES
(1, 'João Silva', 'Particular', '123456789', 'Rua das Vinhas, 100'),
(2, 'Maria Oliveira', 'Empresa', '987654321', 'Avenida Central, 200'),
(3, 'Carlos Pereira', 'Particular', '123123123', 'Praça do Vinho, 50'),
(4, 'Ana Costa', 'Empresa', '321321321', 'Rua do Vinho, 300'),
(5, 'Pedro Almeida', 'Particular', '456456456', 'Avenida das Castas, 400');

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

--
-- Table structure for table `colaborador`
--

CREATE TABLE `colaborador` (
  `numero` int(11) NOT NULL,
  `nome` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `colaborador`
--

INSERT INTO `colaborador` (`numero`, `nome`) VALUES
(1, 'Carlos Silva'),
(2, 'Joana Souza'),
(3, 'Felipe Pereira'),
(4, 'Ana Costa'),
(5, 'Mariana Oliveira');

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

--
-- Table structure for table `colheita`
--

CREATE TABLE `colheita` (
  `REGIAO_ID` int(11) NOT NULL,
  `PRODUTOR_ID` int(11) NOT NULL,
  `COLHEITA_ID` int(11) NOT NULL,
  `ano` int(11) DEFAULT NULL,
  `data_inicio` date DEFAULT NULL,
  `data_fim` date DEFAULT NULL,
  `quantidade` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `colheita`
--

INSERT INTO `colheita` (`REGIAO_ID`, `PRODUTOR_ID`, `COLHEITA_ID`, `ano`, `data_inicio`, `data_fim`, `quantidade`) VALUES
(1, 1, 1, 2023, '2023-03-01', '2023-03-15', 1000),
(2, 2, 2, 2023, '2023-04-01', '2023-04-15', 1500),
(3, 3, 3, 2023, '2023-05-01', '2023-05-15', 1200),
(4, 4, 4, 2023, '2023-06-01', '2023-06-15', 800),
(5, 5, 5, 2023, '2023-07-01', '2023-07-15', 1300);

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

--
-- Table structure for table `contem`
--

CREATE TABLE `contem` (
  `CASTA_ID` int(11) NOT NULL,
  `EDICAO_ID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `contem`
--

INSERT INTO `contem` (`CASTA_ID`, `EDICAO_ID`) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5);

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

--
-- Table structure for table `devolucao`
--

CREATE TABLE `devolucao` (
  `CLIENTE_numero_cliente` int(11) NOT NULL,
  `FATURA_num_fatura` int(11) NOT NULL,
  `DEVOLUCAO_ID` int(11) NOT NULL,
  `data_devol` date DEFAULT NULL,
  `montante` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `devolucao`
--

INSERT INTO `devolucao` (`CLIENTE_numero_cliente`, `FATURA_num_fatura`, `DEVOLUCAO_ID`, `data_devol`, `montante`) VALUES
(1, 1, 1, '2018-06-15', 100),
(2, 2, 2, '2022-06-20', 150),
(3, 3, 3, '2021-07-01', 120),
(4, 4, 4, '2023-07-10', 200),
(5, 5, 5, '2017-07-15', 80);

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

--
-- Table structure for table `devolvido`
--

CREATE TABLE `devolvido` (
  `VINHO_ID` int(11) NOT NULL,
  `DEVOLUCAO_ID` int(11) NOT NULL,
  `quantidade` int(11) DEFAULT NULL,
  `preco` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `devolvido`
--

INSERT INTO `devolvido` (`VINHO_ID`, `DEVOLUCAO_ID`, `quantidade`, `preco`) VALUES
(1, 1, 10, 10),
(2, 2, 15, 10),
(3, 3, 12, 10),
(4, 4, 20, 10),
(5, 5, 8, 10);

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

--
-- Table structure for table `edicao`
--

CREATE TABLE `edicao` (
  `VINHO_ID` int(11) NOT NULL,
  `EDICAO_ID` int(11) NOT NULL,
  `ano` int(11) DEFAULT NULL,
  `tipo` varchar(30) DEFAULT NULL,
  `volume` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `edicao`
--

INSERT INTO `edicao` (`VINHO_ID`, `EDICAO_ID`, `ano`, `tipo`, `volume`) VALUES
(1, 1, 2023, 'Tinto', 500),
(2, 2, 2023, 'Branco', 450),
(3, 3, 2023, 'Rosé', 400),
(4, 4, 2023, 'Tinto', 600),
(5, 5, 2023, 'Branco', 550);

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

--
-- Stand-in structure for view `empresas_maiores_compras`
-- (See below for the actual view)
--
CREATE TABLE `empresas_maiores_compras` (
`numero` int(11)
,`nome` varchar(100)
,`nif` char(9)
,`morada` varchar(100)
,`numero_faturas` bigint(21)
,`volume_compras` double
);

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

--
-- Table structure for table `enologo`
--

CREATE TABLE `enologo` (
  `COLABORADOR_numero` int(11) NOT NULL,
  `especializacao` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `enologo`
--

INSERT INTO `enologo` (`COLABORADOR_numero`, `especializacao`) VALUES
(1, 'Enólogo Chefe'),
(2, 'Enólogo Júnior'),
(3, 'Assistente Enólogo'),
(4, 'Enólogo Senior'),
(5, 'Enólogo de Campo');

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

--
-- Table structure for table `fatura`
--

CREATE TABLE `fatura` (
  `CLIENTE_numero_cliente` int(11) NOT NULL,
  `num_fatura` int(11) NOT NULL,
  `data_fatura` date DEFAULT NULL,
  `valor_total` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `fatura`
--

INSERT INTO `fatura` (`CLIENTE_numero_cliente`, `num_fatura`, `data_fatura`, `valor_total`) VALUES
(1, 1, '2023-05-01', 500),
(2, 2, '2023-05-10', 750),
(3, 3, '2023-05-15', 450),
(4, 4, '2023-05-20', 600),
(5, 5, '2023-05-25', 800);

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

--
-- Table structure for table `ganha`
--

CREATE TABLE `ganha` (
  `EDICAO_ID` int(11) NOT NULL,
  `PREMIO_ID` int(11) NOT NULL,
  `data_distincao` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `ganha`
--

INSERT INTO `ganha` (`EDICAO_ID`, `PREMIO_ID`, `data_distincao`) VALUES
(1, 1, '2018-06-01'),
(1, 2, '2021-06-01'),
(2, 1, '2019-06-01'),
(2, 5, '2023-06-01'),
(3, 2, '2020-06-01'),
(4, 3, '2022-06-01'),
(4, 4, '2023-06-01'),
(5, 4, '2024-06-01');

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

--
-- Table structure for table `incide`
--

CREATE TABLE `incide` (
  `COLHEITA_ID` int(11) NOT NULL,
  `VINHA_codigo` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `incide`
--

INSERT INTO `incide` (`COLHEITA_ID`, `VINHA_codigo`) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5);

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

--
-- Table structure for table `item`
--

CREATE TABLE `item` (
  `VINHO_ID` int(11) NOT NULL,
  `FATURA_num_fatura` int(11) NOT NULL,
  `quantidade` int(11) DEFAULT NULL,
  `preco` double DEFAULT NULL,
  `dimensao` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `item`
--

INSERT INTO `item` (`VINHO_ID`, `FATURA_num_fatura`, `quantidade`, `preco`, `dimensao`) VALUES
(1, 1, 10, 50, '750ml'),
(2, 2, 15, 60, '750ml'),
(3, 3, 12, 45, '750ml'),
(4, 4, 20, 55, '750ml'),
(5, 5, 8, 70, '750ml');

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

--
-- Table structure for table `participa`
--

CREATE TABLE `participa` (
  `COLHEITA_ID` int(11) NOT NULL,
  `TRABALHADOR_COLABORADOR_numero` int(11) NOT NULL,
  `horas` int(11) DEFAULT NULL,
  `remuneracao` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `participa`
--

INSERT INTO `participa` (`COLHEITA_ID`, `TRABALHADOR_COLABORADOR_numero`, `horas`, `remuneracao`) VALUES
(1, 1, 8, 100),
(2, 2, 7, 90),
(3, 3, 9, 110),
(4, 4, 8, 105),
(5, 5, 6, 80);

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

--
-- Table structure for table `premio`
--

CREATE TABLE `premio` (
  `PREMIO_ID` int(11) NOT NULL,
  `nome_distincao` varchar(30) DEFAULT NULL,
  `entidade` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `premio`
--

INSERT INTO `premio` (`PREMIO_ID`, `nome_distincao`, `entidade`) VALUES
(1, 'Prêmio Ouro 2023', 'Revista Vinhos & Companhia'),
(2, 'Prêmio Prata 2023', 'Revista Vinhos & Companhia'),
(3, 'Prêmio Bronze 2023', 'Associação Nacional de Vinho'),
(4, 'Prêmio Melhor Casta 2023', 'Academia do Vinho'),
(5, 'Prêmio Inovação 2023', 'Instituto Brasileiro de Vinhos');

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

--
-- Table structure for table `produtor`
--

CREATE TABLE `produtor` (
  `REGIAO_ID` int(11) NOT NULL,
  `PRODUTOR_ID` int(11) NOT NULL,
  `nome_vinicola` varchar(100) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `morada` varchar(100) DEFAULT NULL,
  `codigo_postal` char(8) DEFAULT NULL,
  `telefone` char(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `produtor`
--

INSERT INTO `produtor` (`REGIAO_ID`, `PRODUTOR_ID`, `nome_vinicola`, `email`, `morada`, `codigo_postal`, `telefone`) VALUES
(1, 1, 'Vinícola São João', 'contacto@vinicolasonjoao.com', 'Rua das Vinhas, 123', '12345-67', '111234567'),
(2, 2, 'Vinícola Dom Pedro', 'contacto@vinicoladompedro.com', 'Av. Central, 456', '23456-78', '112345678'),
(3, 3, 'Vinícola Imperial', 'contacto@vinicolaimperial.com', 'Rua do Vinho, 789', '34567-89', '113456789'),
(4, 4, 'Vinícola Pioneira', 'contacto@vinicolapioneira.com', 'Praça do Vinho, 101', '45678-90', '114567890'),
(5, 5, 'Vinícola Clássica', 'contacto@vinicolaclassica.com', 'Rua da Casta, 202', '56789-01', '115678901');

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

--
-- Table structure for table `produz`
--

CREATE TABLE `produz` (
  `VINHA_codigo` int(11) NOT NULL,
  `CASTA_ID` int(11) NOT NULL,
  `area_cultivada` int(11) DEFAULT NULL,
  `data_plantacao` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `produz`
--

INSERT INTO `produz` (`VINHA_codigo`, `CASTA_ID`, `area_cultivada`, `data_plantacao`) VALUES
(1, 1, 100, '2020-05-01'),
(2, 2, 150, '2021-06-01'),
(3, 3, 120, '2021-08-01'),
(4, 4, 180, '2022-03-01'),
(5, 5, 130, '2022-07-01');

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

--
-- Table structure for table `regiao`
--

CREATE TABLE `regiao` (
  `REGIAO_ID` int(11) NOT NULL,
  `denominacao` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `regiao`
--

INSERT INTO `regiao` (`REGIAO_ID`, `denominacao`) VALUES
(1, 'Região do Douro'),
(2, 'Região da Bairrada'),
(3, 'Região do Alentejo'),
(4, 'Região do Dão'),
(5, 'Região do Tejo');

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

--
-- Stand-in structure for view `total_devolucoes`
-- (See below for the actual view)
--
CREATE TABLE `total_devolucoes` (
`VinhoID` int(11)
,`NomeVinho` varchar(50)
,`AnoDevolucao` int(4)
,`ValorTotal` double
);

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

--
-- Table structure for table `trabalha`
--

CREATE TABLE `trabalha` (
  `PRODUTOR_ID` int(11) NOT NULL,
  `COLABORADOR_numero` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `trabalha`
--

INSERT INTO `trabalha` (`PRODUTOR_ID`, `COLABORADOR_numero`) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5);

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

--
-- Table structure for table `trabalhador`
--

CREATE TABLE `trabalhador` (
  `TRABALHADOR_COLABORADOR_numero` int(11) DEFAULT NULL,
  `COLABORADOR_numero` int(11) NOT NULL,
  `funcao` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `trabalhador`
--

INSERT INTO `trabalhador` (`TRABALHADOR_COLABORADOR_numero`, `COLABORADOR_numero`, `funcao`) VALUES
(1, 1, 'Enólogo'),
(2, 2, 'Agrônomo'),
(3, 3, 'Técnico de Vinhedo'),
(4, 4, 'Gerente de Produção'),
(5, 5, 'Auxiliar de Colheita');

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

--
-- Stand-in structure for view `vendas_por_produtor`
-- (See below for the actual view)
--
CREATE TABLE `vendas_por_produtor` (
`ProdutorID` int(11)
,`NomeProdutor` varchar(100)
,`VinhoID` int(11)
,`NomeVinho` varchar(50)
,`QuantidadeVendida` decimal(32,0)
);

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

--
-- Table structure for table `vinha`
--

CREATE TABLE `vinha` (
  `codigo` int(11) NOT NULL,
  `nome_vinha` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `vinha`
--

INSERT INTO `vinha` (`codigo`, `nome_vinha`) VALUES
(1, 'Vinha do Douro'),
(2, 'Vinha da Bairrada'),
(3, 'Vinha do Alentejo'),
(4, 'Vinha do Dão'),
(5, 'Vinha do Tejo');

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

--
-- Table structure for table `vinho`
--

CREATE TABLE `vinho` (
  `REGIAO_ID` int(11) NOT NULL,
  `PRODUTOR_ID` int(11) NOT NULL,
  `VINHO_ID` int(11) NOT NULL,
  `nome` varchar(50) DEFAULT NULL,
  `data_engarraf` date DEFAULT NULL,
  `teor_alcoolico` float DEFAULT NULL,
  `tipo` varchar(30) DEFAULT NULL,
  `classificacao` varchar(30) DEFAULT NULL,
  `aroma` varchar(30) DEFAULT NULL,
  `sabor` varchar(30) DEFAULT NULL,
  `cor` varchar(30) DEFAULT NULL,
  `stock` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `vinho`
--

INSERT INTO `vinho` (`REGIAO_ID`, `PRODUTOR_ID`, `VINHO_ID`, `nome`, `data_engarraf`, `teor_alcoolico`, `tipo`, `classificacao`, `aroma`, `sabor`, `cor`, `stock`) VALUES
(1, 1, 1, 'Vinho Tinto Premium', '2023-01-15', 14.5, 'Tinto', 'Excelente', 'Frutado', 'Seco', 'Vermelho intenso', 1000),
(2, 2, 2, 'Vinho Branco Superior', '2023-02-20', 12, 'Branco', 'Muito Bom', 'Cítrico', 'Suave', 'Amarelo claro', 1500),
(3, 3, 3, 'Vinho Rosé Exclusivo', '2023-03-25', 13, 'Rosé', 'Bom', 'Frutas vermelhas', 'Seco', 'Rosado', 1200),
(1, 4, 4, 'Vinho Tinto Reserva', '2023-04-10', 15, 'Tinto', 'Excelente', 'Madeira', 'Seco', 'Vermelho escuro', 800),
(2, 5, 5, 'Vinho Branco Clássico', '2023-05-05', 11.5, 'Branco', 'Bom', 'Floral', 'Leve', 'Amarelo pálido', 1300);

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

--
-- Stand-in structure for view `vinhos_premios`
-- (See below for the actual view)
--
CREATE TABLE `vinhos_premios` (
`VinhoID` int(11)
,`NomeVinho` varchar(50)
,`EdicaoID` int(11)
,`PremioID` int(11)
,`DataDistincao` date
);

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

--
-- Stand-in structure for view `vinhos_produtores`
-- (See below for the actual view)
--
CREATE TABLE `vinhos_produtores` (
`nome_produtor` varchar(100)
,`nome_vinho` varchar(50)
,`tipo_vinho` varchar(30)
,`teor_alcoolico` float
,`regiao_vinho` varchar(50)
,`ano_edicao` int(11)
);

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

--
-- Structure for view `castas_por_regiao`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `castas_por_regiao`  AS SELECT `regiao`.`REGIAO_ID` AS `RegiaoID`, `regiao`.`denominacao` AS `NomeRegiao`, `casta`.`CASTA_ID` AS `CastaID`, `casta`.`tipo_uva` AS `NomeCasta`, sum(`produz`.`area_cultivada`) AS `AreaTotal` FROM (((`regiao` join `vinha`) join `produz`) join `casta`) WHERE `regiao`.`REGIAO_ID` = `vinha`.`codigo` AND `vinha`.`codigo` = `produz`.`VINHA_codigo` AND `produz`.`CASTA_ID` = `casta`.`CASTA_ID` GROUP BY `regiao`.`REGIAO_ID`, `regiao`.`denominacao`, `casta`.`CASTA_ID`, `casta`.`tipo_uva` ;

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

--
-- Structure for view `empresas_maiores_compras`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `empresas_maiores_compras`  AS SELECT `c`.`numero_cliente` AS `numero`, `c`.`nome_cliente` AS `nome`, `c`.`nif` AS `nif`, `c`.`morada` AS `morada`, count(`f`.`num_fatura`) AS `numero_faturas`, sum(`i`.`quantidade` * `i`.`preco`) AS `volume_compras` FROM ((`cliente` `c` join `fatura` `f`) join `item` `i`) WHERE `c`.`numero_cliente` = `f`.`CLIENTE_numero_cliente` AND `f`.`num_fatura` = `i`.`FATURA_num_fatura` AND `c`.`tipo` = 'Empresa' GROUP BY `c`.`numero_cliente`, `c`.`nome_cliente`, `c`.`nif`, `c`.`morada` ORDER BY sum(`i`.`quantidade` * `i`.`preco`) DESC ;

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

--
-- Structure for view `total_devolucoes`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `total_devolucoes`  AS SELECT `vinho`.`VINHO_ID` AS `VinhoID`, `vinho`.`nome` AS `NomeVinho`, year(`devolucao`.`data_devol`) AS `AnoDevolucao`, sum(`devolvido`.`quantidade` * `devolvido`.`preco`) AS `ValorTotal` FROM ((`vinho` join `devolucao`) join `devolvido`) WHERE `vinho`.`VINHO_ID` = `devolvido`.`VINHO_ID` AND `devolvido`.`DEVOLUCAO_ID` = `devolucao`.`DEVOLUCAO_ID` GROUP BY `vinho`.`VINHO_ID`, `vinho`.`nome`, year(`devolucao`.`data_devol`) ;

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

--
-- Structure for view `vendas_por_produtor`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vendas_por_produtor`  AS SELECT `vinho`.`PRODUTOR_ID` AS `ProdutorID`, `produtor`.`nome_vinicola` AS `NomeProdutor`, `vinho`.`VINHO_ID` AS `VinhoID`, `vinho`.`nome` AS `NomeVinho`, sum(`item`.`quantidade`) AS `QuantidadeVendida` FROM ((`vinho` join `item`) join `produtor`) WHERE `vinho`.`VINHO_ID` = `item`.`VINHO_ID` AND `vinho`.`PRODUTOR_ID` = `produtor`.`PRODUTOR_ID` GROUP BY `vinho`.`PRODUTOR_ID`, `produtor`.`nome_vinicola`, `vinho`.`VINHO_ID`, `vinho`.`nome` ;

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

--
-- Structure for view `vinhos_premios`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vinhos_premios`  AS SELECT `vinho`.`VINHO_ID` AS `VinhoID`, `vinho`.`nome` AS `NomeVinho`, `edicao`.`EDICAO_ID` AS `EdicaoID`, `ganha`.`PREMIO_ID` AS `PremioID`, `ganha`.`data_distincao` AS `DataDistincao` FROM ((`vinho` join `edicao`) join `ganha`) WHERE `vinho`.`VINHO_ID` = `edicao`.`VINHO_ID` AND `edicao`.`EDICAO_ID` = `ganha`.`EDICAO_ID` ;

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

--
-- Structure for view `vinhos_produtores`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vinhos_produtores`  AS SELECT `p`.`nome_vinicola` AS `nome_produtor`, `v`.`nome` AS `nome_vinho`, `v`.`tipo` AS `tipo_vinho`, `v`.`teor_alcoolico` AS `teor_alcoolico`, `r`.`denominacao` AS `regiao_vinho`, `e`.`ano` AS `ano_edicao` FROM (((`produtor` `p` join `vinho` `v`) join `regiao` `r`) join `edicao` `e`) WHERE `p`.`PRODUTOR_ID` = `v`.`PRODUTOR_ID` AND `v`.`REGIAO_ID` = `r`.`REGIAO_ID` AND `v`.`VINHO_ID` = `e`.`VINHO_ID` ;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `acompanha`
--
ALTER TABLE `acompanha`
  ADD PRIMARY KEY (`COLHEITA_ID`,`ENOLOGO_COLABORADOR_numero`),
  ADD KEY `FK_ENOLOGO_ACOMPANHA_COLHEITA` (`ENOLOGO_COLABORADOR_numero`);

--
-- Indexes for table `casta`
--
ALTER TABLE `casta`
  ADD PRIMARY KEY (`CASTA_ID`);

--
-- Indexes for table `cliente`
--
ALTER TABLE `cliente`
  ADD PRIMARY KEY (`numero_cliente`);

--
-- Indexes for table `colaborador`
--
ALTER TABLE `colaborador`
  ADD PRIMARY KEY (`numero`);

--
-- Indexes for table `colheita`
--
ALTER TABLE `colheita`
  ADD PRIMARY KEY (`COLHEITA_ID`),
  ADD KEY `FK_COLHEITA_pertence_REGIAO` (`REGIAO_ID`),
  ADD KEY `FK_COLHEITA_destinada_PRODUTOR` (`PRODUTOR_ID`);

--
-- Indexes for table `contem`
--
ALTER TABLE `contem`
  ADD PRIMARY KEY (`CASTA_ID`,`EDICAO_ID`),
  ADD KEY `FK_EDICAO_CONTEM_CASTA` (`EDICAO_ID`);

--
-- Indexes for table `devolucao`
--
ALTER TABLE `devolucao`
  ADD PRIMARY KEY (`DEVOLUCAO_ID`),
  ADD KEY `FK_DEVOLUCAO_realiza_CLIENTE` (`CLIENTE_numero_cliente`),
  ADD KEY `FK_DEVOLUCAO_origina_FATURA` (`FATURA_num_fatura`);

--
-- Indexes for table `devolvido`
--
ALTER TABLE `devolvido`
  ADD PRIMARY KEY (`VINHO_ID`,`DEVOLUCAO_ID`),
  ADD KEY `FK_DEVOLUCAO_DEVOLVIDO_VINHO` (`DEVOLUCAO_ID`);

--
-- Indexes for table `edicao`
--
ALTER TABLE `edicao`
  ADD PRIMARY KEY (`EDICAO_ID`),
  ADD KEY `FK_EDICAO_tem_VINHO` (`VINHO_ID`);

--
-- Indexes for table `enologo`
--
ALTER TABLE `enologo`
  ADD PRIMARY KEY (`COLABORADOR_numero`);

--
-- Indexes for table `fatura`
--
ALTER TABLE `fatura`
  ADD PRIMARY KEY (`num_fatura`),
  ADD KEY `FK_FATURA_emitida_CLIENTE` (`CLIENTE_numero_cliente`);

--
-- Indexes for table `ganha`
--
ALTER TABLE `ganha`
  ADD PRIMARY KEY (`EDICAO_ID`,`PREMIO_ID`),
  ADD KEY `FK_PREMIO_GANHA_EDICAO` (`PREMIO_ID`);

--
-- Indexes for table `incide`
--
ALTER TABLE `incide`
  ADD PRIMARY KEY (`COLHEITA_ID`,`VINHA_codigo`),
  ADD KEY `FK_VINHA_INCIDE_COLHEITA` (`VINHA_codigo`);

--
-- Indexes for table `item`
--
ALTER TABLE `item`
  ADD PRIMARY KEY (`VINHO_ID`,`FATURA_num_fatura`),
  ADD KEY `FK_ITEM_noname_FATURA` (`FATURA_num_fatura`);

--
-- Indexes for table `participa`
--
ALTER TABLE `participa`
  ADD PRIMARY KEY (`COLHEITA_ID`,`TRABALHADOR_COLABORADOR_numero`),
  ADD KEY `FK_TRABALHADOR_PARTICIPA_COLHEITA` (`TRABALHADOR_COLABORADOR_numero`);

--
-- Indexes for table `premio`
--
ALTER TABLE `premio`
  ADD PRIMARY KEY (`PREMIO_ID`);

--
-- Indexes for table `produtor`
--
ALTER TABLE `produtor`
  ADD PRIMARY KEY (`PRODUTOR_ID`),
  ADD KEY `FK_PRODUTOR_tem_REGIAO` (`REGIAO_ID`);

--
-- Indexes for table `produz`
--
ALTER TABLE `produz`
  ADD PRIMARY KEY (`VINHA_codigo`,`CASTA_ID`),
  ADD KEY `FK_CASTA_PRODUZ_VINHA` (`CASTA_ID`);

--
-- Indexes for table `regiao`
--
ALTER TABLE `regiao`
  ADD PRIMARY KEY (`REGIAO_ID`);

--
-- Indexes for table `trabalha`
--
ALTER TABLE `trabalha`
  ADD PRIMARY KEY (`PRODUTOR_ID`,`COLABORADOR_numero`),
  ADD KEY `FK_COLABORADOR_TRABALHA_PRODUTOR` (`COLABORADOR_numero`);

--
-- Indexes for table `trabalhador`
--
ALTER TABLE `trabalhador`
  ADD PRIMARY KEY (`COLABORADOR_numero`),
  ADD KEY `FK_TRABALHADOR_chefia_TRABALHADOR` (`TRABALHADOR_COLABORADOR_numero`);

--
-- Indexes for table `vinha`
--
ALTER TABLE `vinha`
  ADD PRIMARY KEY (`codigo`);

--
-- Indexes for table `vinho`
--
ALTER TABLE `vinho`
  ADD PRIMARY KEY (`VINHO_ID`),
  ADD KEY `FK_VINHO_associado_REGIAO` (`REGIAO_ID`),
  ADD KEY `FK_VINHO_produzido_PRODUTOR` (`PRODUTOR_ID`);

--
-- Constraints for dumped tables
--

--
-- Constraints for table `acompanha`
--
ALTER TABLE `acompanha`
  ADD CONSTRAINT `FK_COLHEITA_ACOMPANHA_ENOLOGO` FOREIGN KEY (`COLHEITA_ID`) REFERENCES `colheita` (`COLHEITA_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_ENOLOGO_ACOMPANHA_COLHEITA` FOREIGN KEY (`ENOLOGO_COLABORADOR_numero`) REFERENCES `enologo` (`COLABORADOR_numero`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `colheita`
--
ALTER TABLE `colheita`
  ADD CONSTRAINT `FK_COLHEITA_destinada_PRODUTOR` FOREIGN KEY (`PRODUTOR_ID`) REFERENCES `produtor` (`PRODUTOR_ID`) ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_COLHEITA_pertence_REGIAO` FOREIGN KEY (`REGIAO_ID`) REFERENCES `regiao` (`REGIAO_ID`) ON UPDATE CASCADE;

--
-- Constraints for table `contem`
--
ALTER TABLE `contem`
  ADD CONSTRAINT `FK_CASTA_CONTEM_EDICAO` FOREIGN KEY (`CASTA_ID`) REFERENCES `casta` (`CASTA_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_EDICAO_CONTEM_CASTA` FOREIGN KEY (`EDICAO_ID`) REFERENCES `edicao` (`EDICAO_ID`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `devolucao`
--
ALTER TABLE `devolucao`
  ADD CONSTRAINT `FK_DEVOLUCAO_origina_FATURA` FOREIGN KEY (`FATURA_num_fatura`) REFERENCES `fatura` (`num_fatura`) ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_DEVOLUCAO_realiza_CLIENTE` FOREIGN KEY (`CLIENTE_numero_cliente`) REFERENCES `cliente` (`numero_cliente`) ON UPDATE CASCADE;

--
-- Constraints for table `devolvido`
--
ALTER TABLE `devolvido`
  ADD CONSTRAINT `FK_DEVOLUCAO_DEVOLVIDO_VINHO` FOREIGN KEY (`DEVOLUCAO_ID`) REFERENCES `devolucao` (`DEVOLUCAO_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_VINHO_DEVOLVIDO_DEVOLUCAO_` FOREIGN KEY (`VINHO_ID`) REFERENCES `vinho` (`VINHO_ID`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `edicao`
--
ALTER TABLE `edicao`
  ADD CONSTRAINT `FK_EDICAO_tem_VINHO` FOREIGN KEY (`VINHO_ID`) REFERENCES `vinho` (`VINHO_ID`) ON UPDATE CASCADE;

--
-- Constraints for table `enologo`
--
ALTER TABLE `enologo`
  ADD CONSTRAINT `FK_ENOLOGO_COLABORADOR` FOREIGN KEY (`COLABORADOR_numero`) REFERENCES `colaborador` (`numero`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `fatura`
--
ALTER TABLE `fatura`
  ADD CONSTRAINT `FK_FATURA_emitida_CLIENTE` FOREIGN KEY (`CLIENTE_numero_cliente`) REFERENCES `cliente` (`numero_cliente`) ON UPDATE CASCADE;

--
-- Constraints for table `ganha`
--
ALTER TABLE `ganha`
  ADD CONSTRAINT `FK_EDICAO_GANHA_PREMIO` FOREIGN KEY (`EDICAO_ID`) REFERENCES `edicao` (`EDICAO_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_PREMIO_GANHA_EDICAO` FOREIGN KEY (`PREMIO_ID`) REFERENCES `premio` (`PREMIO_ID`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `incide`
--
ALTER TABLE `incide`
  ADD CONSTRAINT `FK_COLHEITA_INCIDE_VINHA` FOREIGN KEY (`COLHEITA_ID`) REFERENCES `colheita` (`COLHEITA_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_VINHA_INCIDE_COLHEITA` FOREIGN KEY (`VINHA_codigo`) REFERENCES `vinha` (`codigo`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `item`
--
ALTER TABLE `item`
  ADD CONSTRAINT `FK_FATURA_ITEM_VINHO` FOREIGN KEY (`FATURA_num_fatura`) REFERENCES `fatura` (`num_fatura`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_ITEM_noname_FATURA` FOREIGN KEY (`FATURA_num_fatura`) REFERENCES `fatura` (`num_fatura`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_ITEM_representa_VINHO` FOREIGN KEY (`VINHO_ID`) REFERENCES `vinho` (`VINHO_ID`) ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_VINHO_ITEM_FATURA` FOREIGN KEY (`VINHO_ID`) REFERENCES `vinho` (`VINHO_ID`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `participa`
--
ALTER TABLE `participa`
  ADD CONSTRAINT `FK_COLHEITA_PARTICIPA_TRABALHADOR` FOREIGN KEY (`COLHEITA_ID`) REFERENCES `colheita` (`COLHEITA_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_TRABALHADOR_PARTICIPA_COLHEITA` FOREIGN KEY (`TRABALHADOR_COLABORADOR_numero`) REFERENCES `trabalhador` (`COLABORADOR_numero`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `produtor`
--
ALTER TABLE `produtor`
  ADD CONSTRAINT `FK_PRODUTOR_tem_REGIAO` FOREIGN KEY (`REGIAO_ID`) REFERENCES `regiao` (`REGIAO_ID`) ON UPDATE CASCADE;

--
-- Constraints for table `produz`
--
ALTER TABLE `produz`
  ADD CONSTRAINT `FK_CASTA_PRODUZ_VINHA` FOREIGN KEY (`CASTA_ID`) REFERENCES `casta` (`CASTA_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_VINHA_PRODUZ_CASTA` FOREIGN KEY (`VINHA_codigo`) REFERENCES `vinha` (`codigo`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `trabalha`
--
ALTER TABLE `trabalha`
  ADD CONSTRAINT `FK_COLABORADOR_TRABALHA_PRODUTOR` FOREIGN KEY (`COLABORADOR_numero`) REFERENCES `colaborador` (`numero`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_PRODUTOR_TRABALHA_COLABORADOR` FOREIGN KEY (`PRODUTOR_ID`) REFERENCES `produtor` (`PRODUTOR_ID`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `trabalhador`
--
ALTER TABLE `trabalhador`
  ADD CONSTRAINT `FK_TRABALHADOR_COLABORADOR` FOREIGN KEY (`COLABORADOR_numero`) REFERENCES `colaborador` (`numero`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_TRABALHADOR_chefia_TRABALHADOR` FOREIGN KEY (`TRABALHADOR_COLABORADOR_numero`) REFERENCES `trabalhador` (`COLABORADOR_numero`) ON DELETE SET NULL ON UPDATE CASCADE;

--
-- Constraints for table `vinho`
--
ALTER TABLE `vinho`
  ADD CONSTRAINT `FK_VINHO_associado_REGIAO` FOREIGN KEY (`REGIAO_ID`) REFERENCES `regiao` (`REGIAO_ID`) ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_VINHO_produzido_PRODUTOR` FOREIGN KEY (`PRODUTOR_ID`) REFERENCES `produtor` (`PRODUTOR_ID`) ON UPDATE CASCADE;
COMMIT;

