Para este desafio, você precisará usar seus conhecimentos adquiridos no módulo de banco de dados, da trilha .NET da DIO.
Você é responsável pelo banco de dados de um site de filmes, onde são armazenados dados sobre os filmes e seus atores. Sendo assim, foi solicitado para que você realize uma consulta no banco de dados com o objetivo de trazer alguns dados para análises.
Você precisará realizar 12 consultas ao banco de dados, cada uma retornando um tipo de informação. O seu banco de dados está modelado da seguinte maneira:
As tabelas sao descritas conforme a seguir:
Filmes
Tabela responsável por armazenar informações dos filmes.
Atores
Tabela responsável por armazenar informações dos atores.
Generos
Tabela responsável por armazenar os gêneros dos filmes.
ElencoFilme
Tabela responsável por representar um relacionamento do tipo muitos para muitos entre filmes e atores, ou seja, um ator pode trabalhar em muitos filmes, e filmes podem ter muitos atores.
FilmesGenero
Tabela responsável por representar um relacionamento do tipo muitos para muitos entre filmes e gêneros, ou seja, um filme pode ter mais de um gênero, e um genêro pode fazer parte de muitos filmes.
Você deverá executar o arquivo Script Filmes.sql em seu banco de dados SQL Server, presente na pasta Scripts deste repositório (ou clique aqui). Esse script irá criar um banco chamado Filmes, contendo as tabelas e os dados necessários para você realizar este desafio.
Você deverá criar diversas consultas, com o objetivo de retornar os dados a seguir. Abaixo de cada pedido tem o retorno esperado. O seu retorno deve ser igual ao da imagem.
SELECT
NOME,
ANO
FROM Filmes
SELECT
Nome,
Ano,
Duracao
FROM Filmes
ORDER BY Ano
SELECT
Nome,
Ano,
Duracao
FROM Filmes
WHERE Nome = 'De Volta para o Futuro'
SELECT
Nome,
Ano,
Duracao
FROM Filmes
WHERE Ano = 1997
SELECT
Nome,
Ano,
Duracao
FROM Filmes
WHERE Ano > 2000
6 - Buscar os filmes com a duracao maior que 100 e menor que 150, ordenando pela duracao em ordem crescente
SELECT
Nome,
Ano,
Duracao
FROM Filmes
WHERE Duracao > 100 and Duracao < 150
ORDER BY Duracao
7 - Buscar a quantidade de filmes lançadas no ano, agrupando por ano, ordenando pela duracao em ordem decrescente
SELECT
Ano,
COUNT(*) AS Quantidade
FROM Filmes
GROUP BY Ano
ORDER BY Quantidade DESC
SELECT
PrimeiroNome,
UltimoNome
FROM
Atores
Where Genero = 'M'
9 - Buscar os Atores do gênero feminino, retornando o PrimeiroNome, UltimoNome, e ordenando pelo PrimeiroNome
SELECT
PrimeiroNome,
UltimoNome
FROM
Atores
Where Genero = 'F'
ORDER BY UltimoNome
SELECT
Filmes.Nome,
Generos.Genero
FROM
Filmes
INNER JOIN FilmesGenero on FilmesGenero.IdFilme = Filmes.Id
INNER JOIN Generos on Generos.Id = FilmesGenero.IdGenero
SELECT
Filmes.Nome,
Generos.Genero
FROM
Filmes
INNER JOIN FilmesGenero on FilmesGenero.IdFilme = Filmes.Id
INNER JOIN Generos on Generos.Id = FilmesGenero.IdGenero
WHERE Generos.Genero='Mistério'
SELECT
Filmes.Nome,
Atores.PrimeiroNome,
Atores.UltimoNome,
ElencoFilme.Papel
FROM
Filmes
INNER JOIN ElencoFilme on ElencoFilme.IdFilme = Filmes.Id
INNER JOIN Atores on Atores.Id = ElencoFilme.IdAtor