Você já usa o GitHub diariamente para desenvolver os exercícios, certo? Agora, para desenvolver os projetos, você deverá seguir as instruções a seguir. Fique atento a cada passo, e se tiver qualquer dúvida, nos envie por Slack! #vqv 🚀
Aqui você vai encontrar os detalhes de como estruturar o desenvolvimento do seu projeto a partir desse repositório, utilizando uma branch específica e um Pull Request para colocar seus códigos.
- Clone o repositório
git clone https://github.com/tryber/sd-05-mysql-all-for-one.git
.- Entre na pasta do repositório que você acabou de clonar:
cd sd-05-mysql-all-for-one
- Instale as dependências [Caso existam]
npm install
[exemplo]
- Crie uma branch a partir da branch
master
- Verifique que você está na branch
master
- Exemplo:
git branch
- Exemplo:
- Se não estiver, mude para a branch
master
- Exemplo:
git checkout master
- Exemplo:
- Agora, crie uma branch onde você vai guardar os
commits
do seu projeto- Você deve criar uma branch no seguinte formato:
nome-de-usuario-nome-do-projeto
- Exemplo:
git checkout -b seunome-mysql-all-for-one
- Você deve criar uma branch no seguinte formato:
- Para cada exercício você deve criar um novo arquivo sql seguindo a seguinte estrutura:
- desafio1.sql, desafio2.sql...desafioN.sql
- Adicione as mudanças ao stage do Git e faça um
commit
- Verifique que as mudanças ainda não estão no stage
- Exemplo:
git status
(deve aparecer o arquivo que você alterou como desafio1.sql)
- Exemplo:
- Adicione o novo arquivo ao stage do Git
- Exemplo:
git add .
(adicionando solução para desafio 1)git status
(deve aparecer listado o arquivo desafio1.sql em verde)
- Exemplo:
- Faça o
commit
inicial- Exemplo:
git commit -m 'iniciando o projeto MySQL All For One'
(fazendo o primeiro commit)git status
(deve aparecer uma mensagem tipo nothing to commit )
- Exemplo:
- Adicione a sua branch com o novo
commit
ao repositório remoto
- Usando o exemplo anterior:
git push -u origin seunome-mysql-all-for-one
- Crie um novo
Pull Request
(PR)
- Vá até a página de Pull Requests do repositório no GitHub
- Clique no botão verde "New pull request"
- Clique na caixa de seleção "Compare" e escolha a sua branch com atenção
- Clique no botão verde "Create pull request"
- Adicione uma descrição para o Pull Request e clique no botão verde "Create pull request"
- Não se preocupe em preencher mais nada por enquanto!
- Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado
Temos, nesse projeto, uma série de desafios com diferentes níveis de complexidade que devem ser resolvidos cada um em seu arquivo próprio.
-
Leia a pergunta e crie um arquivo chamado
desafioN.sql
, em que N é o número do desafio; -
O arquivo deve conter apenas o código SQL do desafio resolvido. Não se esqueça de incluir o ponto e vírgula (";") no final de suas queries e também de colocar o nome do banco_de_dados.tabela_por_completo, como no exemplo a seguir:
SELECT * FROM northwind.orders;
-
Faça isso até finalizar todos os desafios.
-
Para entregar o seu projeto você deverá criar um Pull Request neste repositório. Este Pull Request deverá conter os arquivos
desafio1.sql
,desafio2.sql
e assim por diante até odesafio27.sql
, que conterão seu códigoSQL
de cada desafio, respectivamente.
Você pode adicionar outros arquivos se julgar necessário. Qualquer dúvida, procure a monitoria.
Lembre-se que você pode consultar nosso conteúdo sobre Git & GitHub sempre que precisar!
Hoje você fará um projeto com o codinome All For One em que praticará todos os conceitos de SQL já ensinados até aqui. Porém, você vai usar um banco de dados totalmente diferente, então dê tchau para o sakila
e dê boas vindas ao Northwind
, que será usado neste projeto. As instruções de como restaurar o banco podem ser lidas a seguir.
-
Faça o download do arquivo de backup aqui clicando em "Raw", depois clicando com botão direito e selecionando "Salvar como" para salvar o arquivo em seu computador.
-
Abra o arquivo com algum editor de texto, e selecione todo o conteúdo do arquivo usando
CTRL-A
. -
Abra o MySQL Workbench.
-
Abra uma nova janela de query e cole dentro dela todo o conteúdo do arquivo
northwind.sql
. -
Selecione todo o código com o atalho
CTRL-A
e depois clique no icone de trovão para executar a query. -
Aguarde alguns segundos (espere em torno de 30 segundos antes de tentar fazer algo).
-
Clique no botão apontado na imagem a seguir para atualizar a listagem de banco de dados.
-
Verifique se o banco restaurado possui todas as seguintes tabelas:
-
Clique com botão direito em cada tabela e selecione "Select Rows" e certifique-se que todas as tabelas possuem registros. Caso tenha alguma faltando, faça o passo a seguir. Caso contrário, pode ir para próxima seção.
-
Caso existam tabelas faltando, drope o banco de dados, clicando com o botão direito em cima do banco de dados northwind e selecionando "Drop Schema", e refaça os passos novamente, dessa vez aguardando um tempo maior quando executar o script de restauração.
Para executar localmente os testes, é preciso escrever o seguinte no seu terminal:
MYSQL_USER=<SEU_NOME_DE_PESSOA_USUARIA> MYSQL_PASSWORD=<SUA SENHA> HOSTNAME=<NOME_DO_HOST> npm test
Ou seja, suponha que para poder acessar a base de dados feita neste projeto você tenha root
como seu nome de pessoa usuária, password
como senha e localhost
como host. Logo, você executaria:
MYSQL_USER=root MYSQL_PASSWORD=password HOSTNAME=localhost npm test
Usando o exemplo anterior de base, suponha que você não tenha setado uma senha para root
. Neste caso, você executaria:
MYSQL_USER=root MYSQL_PASSWORD= HOSTNAME=localhost npm test
Monte queries para encontrar as seguintes informações:
- Exiba apenas os nomes do produtos na tabela
products
. - Exiba os dados de todas as colunas da tabela
products
. - Escreva uma query que exiba os valores da coluna que representa a primary key da tabela
products
. - Conte quantos registros existem em
product_name
deproducts
. - Monte uma query que exiba os dados da tabela
products
a partir do quarto registro até o décimo terceiro, incluindo tanto um quanto o outro. Obs.: não usewhere
ouorder by
. - Exiba os dados das colunas
product_name
eid
da tabelaproducts
de maneira que os resultados estejam em ordem alfabética dos nomes. - Mostre apenas os ids dos 5 últimos registros da tabela
products
(a ordernação deve ser baseada na colunaid
). - Faça uma consulta que retorne três colunas. Na primeira coluna, exiba a soma de
5 + 6
(essa soma deve ser realizada pelo SQL). Na segunda coluna deve haver a palavra "de". E por fim, na terceira coluna, exiba a soma de2 + 8
(essa soma deve ser realizada pelo SQL). A primeira coluna deve se chamar "A", a segunda coluna deve se chamar "Trybe" e a terceira coluna deve se chamar "eh". Não use colunas pre-existentes, apenas o que for criado na hora.
- Mostre todos os valores de
notes
da tabelapurchase_orders
que não são nulos. - Mostre todos os dados da tabela
purchase_orders
em ordem decrescente ordenados porcreated_by
em que ocreated_by
é maior ou igual a 3. E como critério de desempate para a ordenação, ordene também os resultados peloid
de forma crescente. - Exiba os dados de
notes
da tabelapurchase_orders
em que seu valor de "Purchase generated based on Order" está entre 30 e 39, incluindo tanto o valor de 30 quanto de 39. - Mostre as
submitted_date
depurchase_orders
em que asubmitted_date
é do dia 26 de abril de 2006. - Mostre o
supplier_id
daspurchase_orders
em que osupplier_id
seja 1 ou 3. - Mostre os
supplier_id
dapurchase_orders
em que osupplier_id
seja de 1 a 3, incluindo tanto o 1 quanto o 3. - Mostre somente as horas (sem os minutos e os segundos) da
submitted_date
de todos registros depurchase_orders
. Chame essa coluna desubmitted_hour
. - Exiba a
submitted_date
daspurchase_orders
que estão entre2006-01-26 00:00:00
e2006-03-31 23:59:59
. - Mostre os registros das colunas
id
esupplier_id
daspurchase_orders
em que ossupplier_id
sejam tanto 1, ou 3, ou 5, ou 7. - Mostre todos os registros de
purchase_orders
que tem osupplier_id
igual a 3 estatus_id
igual a 2. - Quantos pedidos foram feitos na tabela
orders
peloemployee_id
igual a 5 ou 6, e que foram enviados através do métodoshipper_id
igual a 2? Chame a coluna de orders_count.
- Adicione ao
order_details
uma linha com os seguintes dados:order_id
: 69,product_id
: 80,quantity
: 15.0000,unit_price
: 15.0000,discount
: 0,status_id
: 2,date_allocated
: NULL,purchase_order_id
: NULL einventory_id
: 129. Obs.: oid
deve ser incrementado automaticamente. - Adicione, com um único
INSERT
, duas linhas aoorder_details
com os mesmos dados. Esses dados são novamenteorder_id
: 69,product_id
: 80,quantity
: 15.0000,unit_price
: 15.0000,discount
: 0,status_id
: 2,date_allocated
: NULL,purchase_order_id
: NULL einventory_id
: 129 (oìd
deve ser incrementado automaticamente). - Atualize os dados de
discount
doorder_details
para 15. - Atualize os dados de
discount
da tabelaorder_details
para 30 cujaunit_price
seja menor que 10.0000. - Atualize os dados de
discount
da tabelaorder_details
para 45 cujaunit_price
seja maior que 10.0000 e o id seja um número entre 30 a 40. - Delete todos os dados em que a
unit_price
da tabelaorder_details
seja menor que 10.0000. - Delete todos os dados em que a
unit_price
da tabelaorder_details
seja maior que 10.0000. - Delete todos os dados da tabela
order_details
.
⚠ Lembre-se que garantir que todas as issues comentadas pelo CodeClimate estão resolvidas! ⚠
-
Faça
commits
das alterações que você fizer no código regularmente -
Lembre-se de sempre após um (ou alguns)
commits
atualizar o repositório remoto -
Os comandos que você utilizará com mais frequência são:
git status
(para verificar o que está em vermelho - fora do stage - e o que está em verde - no stage)git add
(para adicionar arquivos ao stage do Git)git commit
(para criar um commit com os arquivos que estão no stage do Git)git push -u nome-da-branch
(para enviar o commit para o repositório remoto na primeira vez que fizer opush
de uma nova branch)git push
(para enviar o commit para o repositório remoto após o passo anterior)
Para sinalizar que o seu projeto está pronto para o "Code Review" dos seus colegas, faça o seguinte:
-
Vá até a página DO SEU Pull Request, adicione a label de "code-review" e marque seus colegas:
-
No menu à direita, clique no link "Labels" e escolha a label code-review;
-
No menu à direita, clique no link "Assignees" e escolha o seu usuário;
-
No menu à direita, clique no link "Reviewers" e digite
students
, selecione o timetryber/students-sd-05
.
-
Caso tenha alguma dúvida, aqui tem um video explicativo.
Use o conteúdo sobre Code Review para te ajudar a revisar os Pull Requests.
#VQV 🚀