Veja como resolver 10 questões para processo seletivo de SQL de forma detalhada e prepare-se para qualquer etapa de seleção.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Na aula de hoje, vamos resolver juntos 10 questões para processo seletivo de SQL de forma detalhada. O objetivo é que você compreenda os conceitos e aprenda o conteúdo enquanto resolvemos.
Apesar de serem questões de nível fácil, elas não são tão diretas, exigindo interpretação e atenção para compreender exatamente o que está sendo pedido e conseguir solucionar da melhor maneira.
Exploraremos temas como contagem, seleção de tabelas, máximo e mínimo, criação de consultas e agrupamento no SQL. Caso você não conheça algum desses conceitos, você poderá aprendê-los ao longo das resoluções.
Então, vamos começar a resolver essas 10 questões para processo seletivo de SQL .
Questão 1: Selecione a tabela de Produtos do Banco de Dados ‘Base’.
No MySQL e em programas de gerenciamento de dados em geral, podemos visualizar a lista de bancos de dados no lado esquerdo. Ao clicarmos sobre o banco de dados, conseguimos ver todas as tabelas presentes nele.
Para selecionar nossa tabela de Produtos desse banco de dados, é simples. Primeiramente, garantimos que o banco de dados esteja ativo. Para isso, clicamos com o botão direito sobre o nome do banco de dados e selecionamos “Set Default Schema“.
Em seguida, utilizamos o comando SELECT (pode ser escrito em maiúsculas ou minúsculas), seguido de asterisco e o nome da tabela:
SELECT * FROM produtos
Dessa forma, estamos selecionando todo o conteúdo da tabela produtos, que será exibida em nossos resultados.
Outra forma de solucionar essa questão sem precisar definir o banco de dados manualmente é declarar no código o nome do banco de dados antes do nome da tabela:
SELECT * FROM base.produtos
Questão 2: Crie duas consultas nesta mesma janela de Query. A consulta 1 deve retornar a tabela de categorias e a consulta 2 deve retornar a tabela de lojas.
O processo de selecionar e exibir essas tabelas é bastante simples. Basta utilizarmos as seguintes linhas de código:
SELECT * FROM categorias;
SELECT * FROM lojas;
Essa é uma questão simples, mas há um detalhe que pode acabar te atrapalhando. Repare que nesse código, ao final de cada linha, eu utilizei ponto e vírgula, diferente da questão 1 em que não utilizei.
Alguns bancos de dados não exigem o uso do ponto e vírgula ao final da linha de comando, porém a grande maioria exige e, caso você não coloque, receberá um erro de sintaxe.
Por isso, por padrão, é recomendado utilizar o ponto e vírgula ao final das linhas de comando, independentemente do programa de banco de dados que você esteja utilizando.
Questão 3: Quais marcas de produtos são vendidas pela empresa?
Nesse caso, sabemos que as informações das marcas dos produtos estão na tabela de produtos, pois já visualizamos essa tabela anteriormente. Caso você não soubesse em qual tabela está a coluna referente às marcas, poderia ir selecionando e visualizando cada uma das tabelas.
Após encontrar a tabela correta, podemos selecionar a coluna marca_produto, utilizando o comando DISTINCT antes do nome da coluna. Dessa forma:
SELECT DISTINCT marca_produto FROM produtos;
Isso seleciona apenas os valores distintos da coluna marca_produto, então não teremos nomes repetidos sendo exibidos. Os nomes das marcas só serão exibidos uma vez cada.
Questão 4: Quais são os 3 maiores preços de produtos?
Novamente, sabemos que essa informação está contida na tabela de produtos. Podemos utilizar o comando ORDER BY para ordenar a nossa tabela produtos a partir da coluna preco_unit.
Podemos fazer essa ordenação de forma crescente (asc) ou decrescente (desc). Como queremos saber os 3 maiores preços, o ideal é ordenar de forma decrescente para que você já tenha os 3 maiores preços como os 3 primeiros valores da tabela.
SELECT * FROM produtos
ORDER BY preco_unit desc;
Caso queiramos exibir apenas os 3 maiores valores, podemos passar o comando LIMIT também com o valor de 3.
SELECT * FROM produtos
ORDER BY preco_unit desc
LIMIT 3;
Questão 5: Faça uma lista dos clientes pós-graduados.
Essa informação está na tabela de clientes, então podemos aplicar um filtro nessa tabela, exibindo apenas os clientes pós-graduados. Para isso, basta executarmos o comando WHERE.
SELECT * FROM clientes
WHERE escolaridade = 'Pós-graduado';
Assim, teremos apenas os clientes pós-graduados sendo exibidos. O comando WHERE é muito útil quando queremos filtrar informações da tabela.
Questão 6: Crie uma consulta à tabela Produtos que retorna todos os produtos das marcas ‘DELL’, ‘SAMSUNG’ e ‘JBL’. Obs: Não utilize o operador OR.
O primeiro ponto que precisamos observar nessa questão é que não podemos utilizar o operador OR. Ou seja, não podemos realizar um filtro onde a marca do produto seja ‘DELL’ ou ‘SAMSUNG’ ou ‘JBL. Como seria no comando abaixo:
SELECT * FROM produtos
WHERE marca_produto = 'DELL' OR marca_produto = 'SAMSUNG';
Perceba que chegaríamos ao resultado desejado, bastaria acrescentar a marca da ‘JBL’ também. No entanto, como não podemos utilizar o operador OR, existe uma alternativa a ele que é o operador IN.
O operador IN permite verificar uma lista, o que torna nosso código mais otimizado. Nesse caso, podemos filtrar utilizando o WHERE, verificando onde marca_produto está dentro da lista com os nomes das marcas que desejamos.
SELECT * FROM produtos
WHERE marca_produto in ('DELL', 'SAMSUNG', 'JBL');
Questão 7: Quantos clientes existem na base? Todos os clientes possuem Telefones cadastrados?
Para descobrirmos a quantidade de clientes cadastrados, podemos utilizar o comando COUNT.
SELECT COUNT(*) FROM clientes;
Dessa forma, estamos contando todas as linhas da tabela, independentemente da coluna.
Para descobrirmos quantos telefones temos cadastrados, podemos utilizar a função COUNT passando para ela o nome da coluna que queremos contar.
SELECT COUNT(telefone) FROM clientes;
Repare que ela retornou o valor de 94. Isso ocorre porque a função COUNT não considera os valores nulos presentes na tabela, contando apenas os valores preenchidos.
Podemos inclusive filtrar para exibir quais são esses clientes:
SELECT * FROM CLIENTES
WHERE telefone IS NULL;
Questão 8: Qual é o maior preço de produto? E o menor?
Uma forma prática para resolvermos essa questão é através das funções MIN e MAX.
SELECT
MAX(preco_unit),
MIN(preco_unit)
FROM produtos;
Dessa forma, estamos selecionando o valor máximo e mínimo da nossa tabela de produtos.
Questão 9: Qual o total de produtos da marca DELL? E o total de produtos da marca SAMSUNG?
Para resolvermos essa questão, podemos realizar um agrupamento no SQL para contar a quantidade de produtos a partir das marcas. Faremos isso selecionando a coluna marca_produto, chamando a função COUNT e agrupando pela marca_produto.
Dessa forma, teremos uma tabela contendo as marcas dos produtos e a quantidade de produtos contida em cada uma.
SELECT
marca_produto,
COUNT (*)
FROM produtos
GROUP BY marca_produto;
Questão 10: Quais são as duas formas de utilizar filtros em conjunto com o GROUP BY?
Existem duas formas de utilizarmos filtros em conjunto com o GROUP BY. A primeira é antes de realizarmos o agrupamento, e a segunda é depois que a tabela já está agrupada.
Antes do Agrupamento:
SELECT
escolaridade,
COUNT(*)
FROM clientes
WHERE sexo = 'M'
GROUP BY escolaridade;
Nesse caso, estamos filtrando apenas para exibir a escolaridade dos clientes do sexo masculino e, em seguida, fazendo o agrupamento pela escolaridade.
Depois do Agrupamento:
SELECT
escolaridade,
COUNT(*)
FROM clientes
GROUP BY escolaridade
HAVING COUNT(*) >= 25;
Já aqui, após realizar o agrupamento pela escolaridade, estamos definindo para exibir apenas aqueles em que a contagem seja maior ou igual a 25.
Nessa aula, resolvemos juntos 10 questões para processo seletivo de SQL de forma detalhada, explicando passo a passo. Dessa forma, você pode não só compreender a resolução dos exercícios como também o conceito abordado em cada um deles.
Apesar de serem questões de nível fácil, são desafios que exigem atenção e são uma excelente fonte para praticar os seus conhecimentos em SQL.
Portanto, estude, pratique e tente resolver sozinho essas questões para verificar o seu desempenho e evolução dentro do SQL.
Para acessar outras publicações de SQL, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.