Simulado 31/07

Ir em baixo

Simulado 31/07

Mensagem por Admin em Qui Ago 01, 2013 12:48 pm

SELECT
animal.codigo_animal,
animal.nome_animal
FROM animal
ORDER BY
animal.nome_animal


--2 - Liste o nome da espécie e o nome do animal de todos animais do zoológico
SELECT
especie.nome_especie,
animal.nome_animal
FROM animal
INNER JOIN especie ON
animal.codigo_especie = especie.codigo_especie;


--3 - Liste o nome de todas as fêmeas de macacos no zoológico
SELECT
animal.nome_animal
FROM animal
INNER JOIN especie ON
animal.codigo_especie = especie.codigo_especie
WHERE
animal.sexo_animal = 'F'
AND especie.nome_especie = 'Macaco';

--4 - Chegou um novo papagaio no zoológico. Faça um comando que cadastre a espécie
--'Papagaio', relacionando-o com a classe de Aves
INSERT INTO especie(nome_especie, codigo_classe)
VALUES ('Papagaio', 2);


--5 - O nome deste papagaio será 'Louro'. Ele é macho, veio do Zoológico Bicharada (origem), e vai ficar na jaula chamada Gaiolão
INSERT INTO animal (nome_animal, sexo_animal, codigo_especie, codigo_origem, codigo_jaula)
VALUES ('Louro', 'M', 11, 2, 4);

--6 - Após um exame mais minucioso, descobriu-se que o Louro na verdade é... Loura!
--Altere o sexo e o nome deste pássaro
UPDATE animal
SET
nome_animal = 'Loura',
sexo_animal = 'F'
WHERE codigo_animal = 24;

--tambem aceitaria:
UPDATE animal
SET
nome_animal = 'Loura',
sexo_animal = 'F'
WHERE nome_animal = 'Louro';


--7 - Liste a quantidade de animais de cada espécie

SELECT
especie.nome_especie,
COUNT(codigo_animal)
FROM animal
INNER JOIN especie ON
animal.codigo_especie = especie.codigo_especie
GROUP BY
especie.nome_especie;

--Se quiser fazer aparecer contagem 0 para especies sem animais:
SELECT
especie.nome_especie,
COUNT(animal.codigo_especie)
FROM especie
LEFT OUTER JOIN animal ON
animal.codigo_especie = especie.codigo_especie
GROUP BY
especie.nome_especie;

--8 - Liste o nome de todos as aves do zoológico
SELECT
animal.nome_animal
FROM animal
INNER JOIN especie ON
animal.codigo_especie = especie.codigo_especie
INNER JOIN classe ON
classe.codigo_classe = especie.codigo_classe
WHERE
classe.nome_classe = 'Ave'

--9 - Liste o nome de todos os alimentos comidos pelo animal chamado 'Kika'
SELECT
alimento.nome_alimento
FROM alimento
INNER JOIN especie_alimento ON
alimento.codigo_alimento = especie_alimento.codigo_alimento
INNER JOIN especie ON
especie.codigo_especie = especie_alimento.codigo_especie
INNER JOIN animal ON
especie.codigo_especie = animal.codigo_especie
WHERE
animal.nome_animal = 'Kika';

--otimização:
SELECT
alimento.nome_alimento
FROM alimento
INNER JOIN especie_alimento ON
alimento.codigo_alimento = especie_alimento.codigo_alimento
INNER JOIN animal ON
especie_alimento.codigo_especie = animal.codigo_especie
WHERE
animal.nome_animal = 'Kika';


--10 - Liste o nome de todos os animais que comem 'Frutas'
SELECT
animal.nome_animal
FROM alimento
INNER JOIN especie_alimento ON
alimento.codigo_alimento = especie_alimento.codigo_alimento
INNER JOIN animal ON
especie_alimento.codigo_especie = animal.codigo_especie
WHERE
alimento.nome_alimento = 'Frutas';

--11 - Faça uma lista com o nome de todos os animais que vieram de
--alguma origem declarada (não nula)
SELECT
animal.nome_animal
FROM animal
WHERE animal.codigo_origem IS NOT NULL;


--12 - Faça uma lista com o nome de todas as espécies de animais contidas
--na jaula chamada 'Gaiolão'
SELECT DISTINCT
especie.nome_especie
FROM animal
INNER JOIN especie ON
animal.codigo_especie = especie.codigo_especie
INNER JOIN jaula ON
animal.codigo_jaula = jaula.codigo_jaula
WHERE
jaula.nome_jaula = 'Gaiolão'

--13 - Faça uma lista com o nome de todos os animais seguidos do nome
--de sua origem. Caso o animal não tenha origem declarada, basta exibir
--apenas o nome do animal
SELECT
animal.nome_animal,
origem.nome_origem
FROM animal
LEFT OUTER JOIN origem ON
animal.codigo_origem = origem.codigo_origem

Admin
Admin

Mensagens : 123
Data de inscrição : 01/07/2013

Ver perfil do usuário http://geracaotecjava.forumbrasil.net

Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum