Skip to content

Tarcisio-Menezes/MySql-One-for-all

 
 

Repository files navigation

Boas vindas ao repositório do projeto Spotify Simple Clone!

Spotify Simple Clone é uma série de comandos e queries que modela um banco de dados MySQL. Ele é capaz de recuperar:

  • Informações sobre quais planos estão disponíveis e seus detalhes;

  • Informações sobre todas as pessoas artistas;

  • Informações sobre todos os álbuns de cada artista;

  • Informações sobre todas as canções de cada álbum;

  • Informações sobre todas as pessoas usuárias, seus planos, seu histórico de reprodução e pessoas artistas seguidas.

O projeto Spotify Simple Clone foi desenvolvido de forma avaliativa durante o curso de desenvolvimento web da Trybe, sob o nome original de MySql-One-for-all, que dá nome a este repositório.


Tecnologias:

  • Modelagem de banco de dados.

  • VIEWs.

  • Triggers.

  • Functions.


Para executar o projeto

  1. Clone o repositório
  • Entre na pasta do repositório que você acabou de clonar
  1. É recomendável executar as queries no MySQL Workbench
  • Inicie sua instância SQL:

    • No linux: sudo systemctl start mysql.services
  • Inicialize o MySQL MySQL Workbench:

    • clique em sua conexão local
    • copie e cole as queries individualmente e em ordem: desafio1 depois desafio2 e assim sucessivamente
    • execute uma por vez com o MySQL Workbench
  • Se você não possuir o MySQL instalado em sua máquina:

    • Faça o download aqui

Entendendo as queries e comandos:

Cada passo de desenvolvimento está em um arquivo sql diferente, nomeado como (desafio(n)) na raíz do projeto. Abaixo você pode visualizar e baixar a planilha com as tabelas que deram origem ao banco de dados:

Tabela não normalizada "Spotify Clone" Faça o download dela aqui


Desafio 1

  • Cria um banco com o nome de SpotifyClone.

  • Popula as tabelas de acordo com os dados listados na seção anterior;


Desafio 2

Cria uma VIEW chamada estatisticas_musicais que exibe três colunas:

  1. A primeira coluna exibe a quantidade total de canções.

  2. A segunda coluna exibe a quantidade total de artistas.

  3. A terceira coluna exibe a quantidade de álbuns.


Desafio 3

Cria uma VIEW chamada historico_reproducao_usuarios. Essa VIEW tem apenas duas colunas:

  1. A primeira coluna exibe o nome da pessoa usuária.

  2. A segunda coluna exibe o nome da canção ouvida pela pessoa com base no seu histórico de reprodução.

Os resultados são ordenados por nome da pessoa usuária em ordem alfabética e em caso de empate no nome os resultados são ordenados pelo nome da canção em ordem alfabética.


Desafio 4

Cria uma VIEW com o nome top_3_artistas que deve mostra somente as três pessoas artistas mais populares no banco SpotifyClone, possuindo as seguintes colunas:

  1. A primeira coluna exibe o nome da pessoa artista.

  2. A segunda coluna exibe a quantidade de pessoas que estão seguindo aquela pessoa artista.

O resultado é ordenado em ordem decrescente, baseando-se na quantidade de seguidores. Em caso de empate, os resultados são ordenados pelo nome da pessoa artista em ordem alfabética.


Desafio 5

Cria uma VIEW com as músicas mais tocadas chamada top_2_hits_do_momento que possue duas colunas:

  1. A primeira coluna exibe o nome da canção.

  2. A segunda coluna exibe a quantidade de pessoas que já escutaram a canção em questão.


Desafio 6

Cria uma VIEW chamada faturamento_atual que deve exibe quatro dados:

  1. A primeira coluna exibe o menor valor de plano existente para uma pessoa usuária.

  2. A segunda coluna exibe o maior valor de plano existente para uma pessoa usuária.

  3. A terceira coluna exibe o valor médio dos planos possuídos por pessoas usuárias até o momento.

  4. A quarta coluna exibe o valor total obtido com os planos possuídos por pessuas usuárias.


Desafio 7

Cria uma VIEW chamada perfil_artistas, que mostra uma relação de todos os álbuns produzidos por cada pessoa artista, com a quantidade de seguidores que ela possui, com as seguintes colunas:

  1. A primeira coluna exibe o nome da pessoa artista.

  2. A segunda coluna exibe o nome do álbum.

  3. A terceira coluna exibe a quantidade de pessoas seguidoras que aquela pessoa artista possui.

Os resultados são ordenados de forma decrescente, baseando-se no número de pessoas seguidoras. Em caso de empate no número de pessoas, os resultados são ordenados pelo nome da pessoa artista em ordem alfabética e caso existam artistas com o mesmo nome, serão ordenados pelo nome do álbum alfabeticamente.


Desafio 8

Cria uma trigger chamada trigger_usuario_delete que é disparada sempre que uma pessoa usuária for excluída do banco de dados, refletindo essa exclusão em todas as tabelas que ela estiver.


Desafio 9

Cria uma procedure chamada albuns_do_artista que recebe como parâmetro o nome de uma pessoa artista e em retorno exibe as seguintes colunas:

  1. O nome da pessoa artista.

  2. O nome do álbum.

Os resultados são ordenados pelo nome do álbum em ordem alfabética.


Desafio 10

Cria uma function chamada de quantidade_musicas_no_historico que exibe a quantidade de músicas que estão presentes atualmente no histórico de reprodução de uma pessoa usuária. Ao receber o código identificador da pessoa, exibe a quantidade de canções em seu histórico de reprodução.


Desafio 11

Cria uma VIEW chamada cancoes_premium que exibe o nome e a quantidade de vezes que cada canção foi tocada por pessoas usuárias do plano familiar ou universitário, de acordo com os detalhes a seguir:

  • A primeira coluna exibe o nome da canção;

  • A segunda coluna exibe a quantidade de pessoas que já escutaram aquela canção;

  • Os resultados são agrupados pelo nome da canção e ordenados em ordem alfabética.


About

Spotify Simple Clone é uma série de comandos e queries que modela um banco de dados MySQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%