Skip to content

CassioJhones/DIO_DesafioSQL

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Desafio SQL - Banco de Dados

www.dio.me | Cassio 30/10/2023

Static Badge GitHub repo size MicrosoftSQLServer

Agradecimentos

Bruno Freschi | Cassia Alvalaz | Gabriel Pimenta.

Desafio de projeto

Para este desafio, você precisará usar seus conhecimentos adquiridos no módulo de banco de dados, da trilha .NET da DIO.

Contexto

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.

Proposta

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:

Diagrama banco de dados

Estrutura do Banco de Dados

As tabelas sao descritas conforme a seguir:

  • Tabela Filmes armazena informações dos filmes.
  • Tabela Atores armazena informações dos atores.
  • Tabela Generos armazena os gêneros dos filmes.
  • Tabela ElencoFilme representa 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.
  • Tabela FilmesGenero representa 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.

Preparando o banco de dados

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.

Objetivo

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.

1 - Nome e ano dos filmes✅

SELECT Nome, Ano
FROM Filmes

Exercicio 1

2 - Nome e ano dos filmes, ordenados por ordem crescente pelo ano✅

SELECT Nome, Ano, Duracao
FROM filmes ORDER BY Ano

Exercicio 2

3 - Filme de volta para o futuro, trazendo o nome, ano e a duração✅

SELECT Ano, Nome, Duracao
FROM Filmes  WHERE Nome LIKE  'DE VOLTA PARA O FUTURO'

Exercicio 3

4 - Filmes lançados em 1997✅

SELECT Nome, Ano, Duracao
FROM FILMES WHERE Ano = 1997

Exercicio 4

5 - Filmes lançados APÓS o ano 2000✅

SELECT Nome, Ano, Duracao
FROM Filmes WHERE Ano > 2000

Exercicio 5

6 - 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

Exercicio 6

7 - A quantidade de filmes lançadas no ano, agrupando por ano, ordenando pela duracao em ordem decrescente✅

SELECT Ano, COUNT(*) Quantidade FROM Filmes
GROUP BY Ano ORDER BY Quantidade DESC

Exercicio 7

8 - Buscar os Atores do gênero masculino, retornando o PrimeiroNome, UltimoNome ✅

SELECT * FROM Atores
WHERE Genero = 'M'

Exercicio 8

9 - Atores do gênero feminino, retornando o PrimeiroNome, UltimoNome, e ordenando pelo PrimeiroNome ✅

SELECT * FROM Atores
WHERE Genero = 'F'
ORDER BY PrimeiroNome

Exercicio 9

10 - Buscar o nome do filme e o gênero ✅

SELECT Nome, Genero FROM Filmes
INNER JOIN FilmesGenero ON Filmes.Id = FilmesGenero.IdFilme
INNER JOIN Generos ON FilmesGenero.IdGenero = Generos.Id

Exercicio 10

11 - Nome do filme e o gênero do tipo "Mistério" ✅

SELECT Nome, Genero FROM Filmes
INNER JOIN FilmesGenero ON Filmes.Id = FilmesGenero.IdFilme
INNER JOIN Generos ON FilmesGenero.IdGenero = Generos.Id
WHERE Genero = 'Mistério'

Exercicio 11

12 - Nome do filme e os atores, trazendo o PrimeiroNome, UltimoNome e seu Papel ✅

SELECT Nome, PrimeiroNome, UltimoNome, Papel FROM Filmes
INNER JOIN ElencoFilme ON ElencoFilme.IdFilme = Filmes.Id
INNER JOIN Atores ON ElencoFilme.IdAtor = Atores.Id

Exercicio 12