Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Exercicio de banco de dados


Miguelowski

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0
1.1.1 
Select *
from peixe
 
1.1.2
Select avg(peso) 
from peixe
 
1.1.3
Select count(codespecie) as Quantidade
From peixe p inner join Especie n
on p.Peixe=n.codespecie
where n.codespecie = 'carapau de corrida'
 
1.1.5 
Select *
From especie n inner join peixe p
on n.codespecie= p.codpeixe inner join Ecossistemas e
on p.codpeixe=e.nome
where e.nome ='Rio Douro'
1.1.4
select count(codpeixe) as Quantidade
from p.peixe inner join especie e
on p.peixe=e.nome
group by e.nome

 

Pode me dizer se estão corretamente resolvidos?

Editado por Miguelowski
Link para o comentário
Compartilhar em outros sites

  • 0

A ideia está correta, porem a escrita precisa de atenção

Ex: 1.1.4 - FROM peixe p ; ON p.codpeixe ;

 

Procedure:

No código abaixo tem a criação da Procedure e da Trigger;

Para inserir utilizando a procedure basta chamar

 

call cadastrarPeixe(2,"Nemo",0.301,"Laranja",1,1);
call cadastrarPeixe(1,"Dory",0.321,"Azul",1,1);

 

 

 

Se quiser testar eu elaborei o banco, basta você subir em um banco de dados seu;

 

-- --------------------------------------------------------
-- Servidor:                     127.0.0.1
-- Versão do servidor:           5.6.17 - MySQL Community Server (GPL)
-- OS do Servidor:               Win64
-- HeidiSQL Versão:              9.3.0.4984
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Copiando estrutura para procedure foruns.cadastrarPeixe
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `cadastrarPeixe`( IN codpeixe INT, 
										  IN nome VARCHAR(50), 
										  IN peso FLOAT, 
										  IN cor VARCHAR(50), 
										  IN codEspecie INT, 
										  IN codEcossistema INT)
BEGIN
	INSERT INTO peixe VALUES (codpeixe, nome, peso, cor, codEspecie, codEcossistema);
END//
DELIMITER ;


-- Copiando estrutura para tabela foruns.ecossistema
CREATE TABLE IF NOT EXISTS `ecossistema` (
  `codEcossistema` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) DEFAULT NULL,
  `temp` varchar(50) DEFAULT NULL,
  `codTipo` int(11) DEFAULT NULL,
  `codLocal` int(11) DEFAULT NULL,
  PRIMARY KEY (`codEcossistema`),
  KEY `fkCodTipo` (`codTipo`),
  KEY `fkCodLocal` (`codLocal`),
  CONSTRAINT `fkCodTipo` FOREIGN KEY (`codTipo`) REFERENCES `tipo` (`codTipo`),
  CONSTRAINT `fkCodLocal` FOREIGN KEY (`codLocal`) REFERENCES `local` (`codLocal`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.ecossistema: ~0 rows (aproximadamente)
/*!40000 ALTER TABLE `ecossistema` DISABLE KEYS */;
INSERT INTO `ecossistema` (`codEcossistema`, `nome`, `temp`, `codTipo`, `codLocal`) VALUES
	(1, 'filme', '?', NULL, 1);
/*!40000 ALTER TABLE `ecossistema` ENABLE KEYS */;


-- Copiando estrutura para tabela foruns.especie
CREATE TABLE IF NOT EXISTS `especie` (
  `codEspecie` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) DEFAULT NULL,
  `numeroPeixes` int(11) DEFAULT NULL,
  PRIMARY KEY (`codEspecie`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.especie: ~2 rows (aproximadamente)
/*!40000 ALTER TABLE `especie` DISABLE KEYS */;
INSERT INTO `especie` (`codEspecie`, `nome`, `numeroPeixes`) VALUES
	(1, 'Peixe Palhaço', 2),
	(2, 'Lambari', 0);
/*!40000 ALTER TABLE `especie` ENABLE KEYS */;


-- Copiando estrutura para tabela foruns.local
CREATE TABLE IF NOT EXISTS `local` (
  `codLocal` int(11) NOT NULL AUTO_INCREMENT,
  `local` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`codLocal`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.local: ~0 rows (aproximadamente)
/*!40000 ALTER TABLE `local` DISABLE KEYS */;
INSERT INTO `local` (`codLocal`, `local`) VALUES
	(1, 'cinema');
/*!40000 ALTER TABLE `local` ENABLE KEYS */;


-- Copiando estrutura para tabela foruns.peixe
CREATE TABLE IF NOT EXISTS `peixe` (
  `codPeixe` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) DEFAULT NULL,
  `peso` float DEFAULT NULL,
  `cor` varchar(50) DEFAULT NULL,
  `codEspecie` int(11),
  `codEcossistema` int(11) DEFAULT NULL,
  PRIMARY KEY (`codPeixe`),
  KEY `fkCodEspeciePeixe` (`codEspecie`),
  KEY `fkCodEcossistemaPeixe` (`codEcossistema`),
  CONSTRAINT `fkCodEspeciePeixe` FOREIGN KEY (`codEspecie`) REFERENCES `especie` (`codEspecie`),
  CONSTRAINT `fkCodEcossistemaPeixe` FOREIGN KEY (`codEcossistema`) REFERENCES `ecossistema` (`codEcossistema`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.peixe: ~2 rows (aproximadamente)
/*!40000 ALTER TABLE `peixe` DISABLE KEYS */;
INSERT INTO `peixe` (`codPeixe`, `nome`, `peso`, `cor`, `codEspecie`, `codEcossistema`) VALUES
	(1, 'Dory', 0.321, 'Azul', 1, 1),
	(2, 'Nemo', 0.301, 'Laranja', 1, 1);
/*!40000 ALTER TABLE `peixe` ENABLE KEYS */;


-- Copiando estrutura para tabela foruns.tipo
CREATE TABLE IF NOT EXISTS `tipo` (
  `codTipo` int(11) NOT NULL AUTO_INCREMENT,
  `tipo` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`codTipo`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.tipo: ~1 rows (aproximadamente)
/*!40000 ALTER TABLE `tipo` DISABLE KEYS */;
INSERT INTO `tipo` (`codTipo`, `tipo`) VALUES
	(1, 'animacao');
/*!40000 ALTER TABLE `tipo` ENABLE KEYS */;


-- Copiando estrutura para tabela foruns.videos
CREATE TABLE IF NOT EXISTS `videos` (
  `codigo` int(11) NOT NULL AUTO_INCREMENT,
  `link` varchar(50) DEFAULT '0',
  PRIMARY KEY (`codigo`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- Copiando dados para a tabela foruns.videos: ~2 rows (aproximadamente)
/*!40000 ALTER TABLE `videos` DISABLE KEYS */;
INSERT INTO `videos` (`codigo`, `link`) VALUES
	(1, 'https://www.youtube.com/embed/60ItHLz5WEA'),
	(2, 'https://www.youtube.com/embed/COq2RouJ2tQ');
/*!40000 ALTER TABLE `videos` ENABLE KEYS */;


-- Copiando estrutura para trigger foruns.peixe_after_insert
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `peixe_after_insert` AFTER INSERT ON `peixe` FOR EACH ROW BEGIN

UPDATE especie set especie.numeroPeixes = (SELECT COUNT(1) FROM peixe WHERE peixe.codEspecie=especie.codEspecie );

END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;


-- Copiando estrutura para trigger foruns.peixe_after_update
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `peixe_after_update` AFTER UPDATE ON `peixe` FOR EACH ROW BEGIN

UPDATE especie set especie.numeroPeixes = (SELECT COUNT(1) FROM peixe WHERE peixe.codEspecie=especie.codEspecie );
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...