--1. Atualizar o endereço da Editora Campus para ‘Av. ACM’ update editora set endereco = 'AV. ACM' where cod_editora = 1; --2. Atualizar os preços dos livros em 10% update LIVRO set preco = preco * 1.10; --3. Excluir a ‘Editora Teste’ delete from editora where cod_editora = 3; -- 4. Apresentar o nome e data de nascimento de todos os autores select nome, data_nascimento from AUTOR; --5. Apresentar o nome e a data de nascimento dos autores por ordem de nome. select nome, data_nascimento from AUTOR order by nome; --6. Apresentar o nome e a data de nascimento dos autores do sexo feminino --ordenados pelo nome. select nome, data_nascimento from AUTOR where sexo = 'F' order by nome; --7. Apresentar o nome das editoras que não tem o --endereço cadastrado. select descricao from editora where endereco is null; --8. Apresentar o título do livro e o nome da sua editora insert into editora (descricao) values ('editora teste'); select l.titulo, e.descricao from livro as l, editora as e where l.cod_editora = e.cod_editora; select l.titulo, e.descricao from livro as l inner join editora as e on (l.cod_editora = e.cod_editora); select l.titulo, e.descricao from livro as l right join editora as e on (l.cod_editora = e.cod_editora); 9. Apresentar o título do livro e o nome da sua editora. Caso haja alguma editora sem livro publicado, informar os dados da editora com valores nulos para os livros. select e.descricao, l.titulo from editora as e left join livro as l on (e.cod_editora = l.cod_editora) select ed.descricao from editora as ed where ed.descricao not in( select distinct e.descricao from editora as e inner join livro as l on (e.cod_editora = l.cod_editora)) select e.descricao from editora as e where not exists ( select * from livro as l where e.cod_editora = l.cod_editora) 10. Apresentar o título do livro e o nome dos seus autores select l.titulo, a.nome from livro as l inner join livro_autor as la on (l.cod_livro = la.cod_livro) inner join autor as a on (la.cod_autor = a.cod_autor) select l.titulo, a.nome from livro as l, livro_autor as la, autor as a where l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor 11. Apresentar o nome da editora e o nome dos autores que já publicaram algum livro na editora. select e.descricao, a.nome from editora as e inner join livro as l on (e.cod_editora = l.cod_editora) inner join livro_autor as la on (l.cod_livro = la.cod_livro) inner join autor as a on (la.cod_autor = a.cod_autor) 12. Apresentar o título dos livros que começam a string ‘Banco’. select l.titulo from livro as l where l.titulo like 'banco%' 13. Apresentar o título dos livros que tem a string ‘do’. select l.titulo from livro as l where l.titulo like '%do%' select l.titulo from livro as l where l.titulo like '__n_o%' 14. Apresentar o nome de cada livro e seu preço reajustado em 5% select l.titulo, l.preco*1.05 as preco from livro l 15. Apresentar o nome dos autores que nasceram no mês de outubro select a.nome from autor as a where extract (month from data_nascimento) = 10 16. Apresentar o número de livros do acervo SELECT COUNT (*) AS QTDE FROM LIVRO AS L 17. Apresentar o número de autores do livro ‘Banco de Dados’ select count (a.nome) as qtde from livro as l, livro_autor as la, autor as a where (l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor) and l.titulo = 'banco de dados' 18. Apresentar o somatório dos preços dos livros do acervo select sum (l.preco) as total from livro as l 19. Apresentar a média de preços dos livros da editora Campus select avg (l.preco) as media from editora as e inner join livro as l on (e.cod_editora = l.cod_editora) where e.descricao = 'campus' 20. Apresentar o maior preço dentre todos os livros do acervo. select max (l.preco) as maior from livro as l select l.titulo from livro as l where l.preco in ( select max (l.preco) as maior from livro as l) 21. Apresentar a data de nascimento do autor mais velho select min (a.data_nascimento) as menor from autor as a 22. Apresentar o número de livros por editora select e.descricao, count (l.titulo) as total from editora as e left join livro as l on (e.cod_editora = l.cod_editora) group by e.descricao 23. Apresentar o somatório e média de preço dos livros por editora select e.descricao, sum (l.preco) as soma, avg (l.preco) as media from editora as e left join livro as l on (e.cod_editora = l.cod_editora) group by e.descricao 24. Apresentar o número de autores por livro, mas apenas dos livros que possuem mais de 1 autor select l.titulo, count (a.nome) as total from livro as l, livro_autor as la, autor as a where (l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor) group by l.titulo having count (a.nome) > 1 ---- select * from (select l.titulo, count (a.nome) as total from livro as l, livro_autor as la, autor as a where (l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor) group by l.titulo) as tabela where tabela.total > 1 25. Apresentar a média de preços geral por editora, mas apenas as editoras que possuem média maior que R$ 80,00 select e.descricao, avg (preco) as media from editora as e left join livro as l on (e.cod_editora = l.cod_editora) group by e.descricao having avg (preco) > 80 26. Apresentar o nome dos autores que não são autores do livro Banco de Dados select a.nome from autor as a where a.nome not in ( select a.nome from livro as l, livro_autor as la, autor as a where (l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor) and l.titulo = 'banco de dados') select au.nome from autor as au where not exists ( select * from livro as l, livro_autor as la, autor as a where l.cod_livro = la.cod_livro and la.cod_autor = a.cod_autor and l.titulo = 'banco de dados' and au.nome = a.nome) 27. Apresentar a quantidade de livros da editora Campus e Abril em colunas diferentes. SELECT SUM (total_abril) as abril, sum (total_campus) as campus, sum (total_teste) as teste FROM (select count (l.titulo) as total_abril, 0 as total_campus, 0 as total_teste from editora as e left join livro as l on (e.cod_editora = l.cod_editora) where e.descricao = 'abril' group by e.descricao UNION ALL select 0 as total_abril, count (l.titulo) as total_campus, 0 as total_teste from editora as e left join livro as l on (e.cod_editora = l.cod_editora) where e.descricao = 'campus' group by e.descricao UNION ALL select 0 as total_abril, 0 as total_campus, count (l.titulo) as total_teste from editora as e left join livro as l on (e.cod_editora = l.cod_editora) where e.descricao = 'editora teste' group by e.descricao) AS TABELA