Lab06
Transcrição
Lab06
Utilize o script lab06ins.sql para criar uma tabela de Atores e uma tabela de Filmes. 1. Between, to_char. a) Selecione o nome dos Atores com idade entre 30 e 60 anos. b) Selecione o titulo dos filmes, seu dia e mês de lançamento, somente para os filmes lançados entre os meses de janeiro e julho e na primeira quinzena do mês. (conclua: o between inclui os valores dos extremos na pesquisa?) 2. Mod, to_char. Selecione o titulo dos filmes e mês de lançamento para os filmes que foram lançados em um dia par. (conclua: você pode fazer operações aritméticas com o resultado da função to_char?) 3. Like, lower, not in. Selecione os filmes cujo o título contenha a palavra instinto ou o conectivo de mas que não sejam do tipo aventura ou drama. 4. (not) in. Use um único statement IN para selecionar os filmes de aventura que não foram lançados no mês 11, nem os dramas lançados no mês 1, e nem os policiais lançados no mês 1). 5. Distinct, month, day. Selecione o titulo dos filmes, seu mês e dia de lançamento dos filmes do tipo policial ou aventura, suprimindo ocorrências repetidas e atribuindo nomes adequados às colunas. (Conclua: podemos ter linhas repetidas em tabelas? E no modelo relacional?). 6. (not) Exists (+subselect), is null, from DUAL. a) Faça uma query ‘relatorio’ que retorna a frase 'Não existem atores na tabela Atores' se não existirem Atores do sexo masculino na tabela Atores. b) Faça uma query ‘relatorio’ que retorna a frase a) Faça uma query ‘relatorio’ que retorna a frase 'Não existem atores na tabela Atores' se não existirem Atores com a idade não informada na tabela Atores (Peça instruções sobre subselect no laboratório se necessário). 7. Floor, avg, subselect. a) Selecione a idade média dos atores. b) Selecione os atores que possuem idade inferior a média dos atores. (Conclua: os valores null são computados na média como zeros?). (Peça instruções sobre subselect no laboratório se necessário). 8. Sum, count, avg. A média da idade de um grupo de pessoas é a dada pela soma das idades dividida pela quantidade de pessoas: MediaIdade = SomaIdades / QdePessoas. Desse modo espera-se que multiplicando-se MediaIdade * QdePessoas possamos obter a soma das idades SomaIdades (= MediaIdade * QdePessoas). Faça uma query selecionando sum(idade) e count(*)*avg(idade) da tabela Atores a) para todos os Atores; e b) somente para os atores onde a idade não nula. Qual a sua conclusão? 9. Order by. Selecione os atores por ordem de idade descrescente. Conclua: valores null são considerados na ordem? 10. Decode, to_char. Faça uma query para obter uma saída do tipo CROSS-TAB tabela de filmes como abaixo. da TITULO JAN FEV MAR ABR MAI JUN JUL AGO SET OUT NOV DEZ -------------------- --- --- --- --- --- --- --- --- --- --- --- --Instinto Selvagem X La femme Nikita X Innocent blood X A marca da pantera X Cidade aberta X Fome de viver X Innocent blood X O desprezo X Innocent blood X A bela da tarde X 11. Extra... Group by, having. Faça uma query que seleciona da tabela de filmes as linhas duplicadas.