CREATE TABLE EDITORA ( COD_EDITORA INT NOT NULL, DESCRICAO VARCHAR (30) NOT NULL, ENDERECO VARCHAR (30) NULL, CONSTRAINT PK_EDITORA PRIMARY KEY (COD_EDITORA) ); CREATE TABLE AUTOR( COD_AUTOR INT NOT NULL, NOME VARCHAR (45) NOT NULL, SEXO CHAR (1) NOT NULL, DATA_NASCIMENTO DATE NOT NULL, CONSTRAINT PK_AUTOR PRIMARY KEY (COD_AUTOR) ); CREATE TABLE LIVRO ( COD_LIVRO INT NOT NULL, ISBN VARCHAR (25) NOT NULL, TITULO VARCHAR (45) NOT NULL, NUM_EDICAO INT NOT NULL, PRECO FLOAT NOT NULL, COD_EDITORA INT NOT NULL, CONSTRAINT PK_LIVRO PRIMARY KEY (COD_LIVRO), CONSTRAINT FK_LIVRO_EDITORA FOREIGN KEY (COD_EDITORA) REFERENCES EDITORA (COD_EDITORA) ); CREATE TABLE LIVRO_AUTOR ( COD_LIVRO INT NOT NULL, COD_AUTOR INT NOT NULL, CONSTRAINT PK_LIVRO_AUTOR PRIMARY KEY (COD_LIVRO, COD_AUTOR), CONSTRAINT FK_LA_LIVRO FOREIGN KEY (COD_LIVRO) REFERENCES LIVRO (COD_LIVRO), CONSTRAINT FK_LA_AUTOR FOREIGN KEY (COD_AUTOR) REFERENCES AUTOR (COD_AUTOR) ); INSERT INTO EDITORA (COD_EDITORA, DESCRICAO, ENDERECO) VALUES (1, 'CAMPUS', 'RUA DO TIMBÓ'), (2, 'ABRIL', NULL), (3, 'EDITORA TESTE', NULL); INSERT INTO LIVRO (COD_LIVRO, ISBN, TITULO, NUM_EDICAO,PRECO, COD_EDITORA) VALUES (1, '12345', 'BANCO DE DADOS', 3, 70.0, 1), (2, '35790','SGBD',1, 85.00, 2 ), (3, '98765','REDES DE COMPUTADORES',2, 80.00,2); INSERT INTO AUTOR (COD_AUTOR, NOME, SEXO, DATA_NASCIMENTO) VALUES (1, 'João','M','01/01/1970'), (2, 'Maria', 'F', '17/05/1974'), (3, 'José', 'M', '10/10/1977'), (4, 'Carla', 'F', '08/12/1964'); INSERT INTO LIVRO_AUTOR (COD_LIVRO, COD_AUTOR) VALUES (1, 1), (1, 2), (2, 2), (2, 4), (3, 3); --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.1; --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. -- ASCENDENTE POR NOME SELECT NOME, DATA_NASCIMENTO FROM AUTOR ORDER BY NOME; -- DESCEDENTE POR NOME SELECT NOME, DATA_NASCIMENTO FROM AUTOR ORDER BY NOME DESC; --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; -- O INVERSO, POSSUI ENDEREÇO SELECT DESCRICAO FROM EDITORA WHERE ENDERECO IS NOT NULL; --8. Apresentar o título do livro e o nome da sua editora SELECT L.TITULO, E.DESCRICAO FROM LIVRO AS L, EDITORA AS E WHERE L.COD_EDITORA = E.COD_EDITORA SELECT E.DESCRICAO, L.TITULO FROM LIVRO AS L INNER JOIN EDITORA AS E ON (L.COD_EDITORA = E.COD_EDITORA) INSERT INTO EDITORA (COD_EDITORA, DESCRICAO) VALUES (3, 'EDITORA TESTE'); -- RECUPERANDO EDITORA QUE NAO TEM LIVRO SELECT E.DESCRICAO, L.TITULO 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 LIVRO AS L RIGHT JOIN EDITORA AS E ON (L.COD_EDITORA = E.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) --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) INSERT INTO LIVRO_AUTOR VALUES (3,4); SELECT DISTINCT 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’. 13. Apresentar o título dos livros que tem a string ‘do’. 14. Apresentar o nome de cada livro e seu preço reajustado em 5% 15. Apresentar o nome dos autores que nasceram no mês de outubro 16. Apresentar o número de livros do acervo 17. Apresentar o número de autores do livro ‘Banco de Dados’ 18. Apresentar o somatório dos preços dos livros do acervo 19. Apresentar a média de preços dos livros da editora Campus 20. Apresentar o maior preço dentre todos os livros do acervo. 21. Apresentar a data de nascimento do autor mais velho 22. Apresentar o número de livros por editora 23. Apresentar o somatório e média de preço dos livros por editora 24. Apresentar o número de autores por livro, mas apenas dos livros que possuem mais de 1 autor 25. Apresentar a média de preços geral por editora, mas apenas as editoras que possuem média maior que R$ 80,00 26. Apresentar o nome dos autores que não são autores do livro Banco de Dados 27. Apresentar a quantidade de livros da editora Campus e Abril em colunas diferentes.