Você está na página 1de 3

EXERCCIOS

Exerccios para o banco de dados Livro x Assunto x Editora:


1) Recuperar o ttulo do livro e o nome da editora que o publica para todos os livros que
custam menos que 50.
SELECT TITULO,NOME FROM LIVRO INNER JOIN EDITORA ON LIVRO.EDITORA=EDITORA.CODIGO
WHERE PREO<50

2) Recuperar a descrio dos assuntos que so referenciados em pelo menos 2 livros.


SELECT DESCRIO FROM ASSUNTO INNER JOIN LIVRO ON LIVRO.ASSUNTO=ASSUNTO.SIGLA
GROUP BY DESCRIO HAVING COUNT(*)>=2

3) Recuperar a sigla e a descrio dos assuntos que so referenciados em pelo menos 2


livros. (idem E2, agora apresenta a sigla tambm).
SELECT SIGLA,DESCRIO FROM ASSUNTO INNER JOIN LIVRO ON
LIVRO.ASSUNTO=ASSUNTO.SIGLA GROUP BY SIGLA,DESCRIO
HAVING COUNT(*)>=2

4) Monte o comando para apresentar o preo do livro mais caro publicado pela Mirandela
Editora sobre programao.
SELECT MAX(PREO) FROM LIVRO INNER JOIN EDITORA ON LIVRO.EDITORA=EDITORA.CODIGO
INNER JOIN ASSUNTO ON LIVRO.ASSUNTO=ASSUNTO.SIGLA
WHERE NOME='MIRANDELA EDITORA' AND DESCRIO='PROGRAMAO'

5) Monte o comando para apresentar o preo do livro mais caro publicado pela editora 1
do assunto P.
SELECT MAX(PREO) FROM LIVRO WHERE EDITORA=1 AND ASSUNTO='P'

Exerccios p/o banco de dados P x SP x S (Peas x Fornecimentos x Fornecedores):


6) Recuperar o nome das peas com o mesmo peso da pea P2. (J visto, reviso)
Select pname from p where weight = (select weight from p where pcod ='P2') and
pcod <> 'P2'

7)Recuperar as informaes da pea mais pesada.


Select * from p where weight = (select max(weight) from p)

8) Recuperar a quantidade de fornecedores.


Select COUNT(*) from S

9) Recuperar a quantidade de peas vermelhas.


Select COUNT(*) from P where color ='Red'

10) Recuperar a quantidade de fornecedores que fornecem peas no momento (SP).


Select COUNT (DISTINCT SCOD) from SP

EXERCCIOS

11) Recuperar a mdia de fornecimentos da pea P1.


Select AVG( QTY ) from SP where PCOD = 'P1'

12) Recuperar o cdigo e a quantidade total fornecida de cada pea.


Select

PCOD, SUM(QTY)

from

SP

GROUP BY

PCOD

12.1) Recuperar o cdigo O NOME e a quantidade total fornecida de cada pea.


Select
PCOD

PCOD, PNAME, SUM(QTY)

from

sp inner join p on p.pcod=sp.pcod

GROUP BY

13) Recuperar o cdigo e a quantidade total fornecida de cada pea, mostrando apenas
aquelas cujo total fornecido maior que 400.
Select

PCOD, SUM(QTY)

from

SP

GROUP BY

PCOD

HAVING SUM(QTY) > 400

13.1) Recuperar o cdigo O NOME e a quantidade total fornecida de cada pea,


mostrando apenas aquelas cujo total fornecido maior que 400.
Select PCOD, PNAME, SUM(QTY)
PCOD HAVING SUM(QTY) > 400

from

SP inner join P on P.PCOD=SP.PCOD

GROUP BY

14) Recuperar o cdigo e a mdia dos fornecimentos de cada pea, mostrando apenas
aquelas cuja mdia maior que 200.
Select PCOD, AVG(QTY)

from

SP

GROUP BY

PCOD

HAVING

AVG(QTY)>200

15) Recuperar o cdigo e a mdia de fornecimentos dos fornecedores que fornecem mais
de duas peas.
Select scod,avg(qty) from sp group by scod having count(scod) > 2

15.1) Recuperar o cdigo O NOME e a mdia de fornecimentos dos fornecedores que


fornecem mais de duas peas.
Select scod,sname,avg(qty) from sp inner join s on s.scod=sp.scod group by scod
having count(scod) > 2

16) Recuperar o cdigo dos fornecedores que fornecem todas as peas.


Select scod from sp group by scod having count(*) = (select count(*) from p)
OU
Select scod from sp group by scod having count(scod) = (select count(*) from p)

17) Recuperar o cdigo dos fornecedores que fornecem apenas peas verdes (ou seja,
fornecedores que no fornecem peas diferentes de verde).
Select scod from sp where scod not in
(select s.scod from s inner join sp on s.scod=sp.scod inner join p on
p.pcod=sp.pcod where p.color <> 'Green')

EXERCCIOS

18) Inserir os fornecimentos resultantes da seguinte consulta: Combinar o cdigo de


fornecedor S5 com o cdigo de todas as peas (quantidade nula).
Insert into sp (scod,pcod) select 'S5',pcod from p

19) Remover da tabela P todas as peas que no esto sendo fornecidas.


Delete from p where pcod not in (select distinct pcod from sp)

20) Recuperar o nome dos fornecedores que fornecem peas no momento.


Select sname from s inner join sp on s.scod=sp.scod

Você também pode gostar