Tecnologia da Informação
-- 1) Apresentar a sigla e descrição de todos os assuntos que contenham livro. Ordene em ordem
-- descrecente de descrição
Select a.sigla, a.descricao from assunto a where a.sigla in (Select l.sigla_assunto from livro l) order by a.descricao DESC
Select a.sigla, a.descricao from assunto a where exists(Select * from livro l where (l.sigla_assunto=a.sigla)) order by a.descricao DESC
*********************************************************************
-- 2) Apresente codigo e nome de todas as editoras que não tenham livros do assunto de sigla 'BD'.
-- Ordene em ordem crescente de nome de editora
Select e.codigo, e.nome from editora e where e.codigo not in (Select l.cod_editora from livro l where (l.sigla_assunto!='BD'))
Select e.codigo, e.nome from editora e where not exists(Select l.cod_editora from livro l where (l.cod_editora=e.codigo) and (l.sigla_assunto!='BD'))
*********************************************************************
-- 3) Apresente a matricula, nome e idade (em anos) de todos os autores brasileiros que tenham
-- escrito livro com lançamento a menos de cinco anos. Ordene por idade (DESC) e nome
Select a.matricula, a.nome, DateDiff(Year,a.data_nascimento,getDate()) as Idade from autor a where (Upper(a.nacionalidade) like 'BRASILEIR%') and
a.matricula in (Select al.mat_autor from autor_livro al
Inner Join livro l on (l.codigo=al.cod_livro) where (DateDiff(year,l.data_lancamento,getDate()) Junção externa à direita;
(Estes dois tipos de junção externa retornam informações baseando se na tabela à esquerda (junção à esquerda) ou baseando se na tabela à direira (junção à direita), não necessitando haver vínculo na tabela adjacente.
***************************************************************************
06- Apresentar o nome da editora, nome do assunto e a quantidade de livros publicados pela editora no assunto. Considerar apenas livros lançados antes