Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Mão na massa: hora da prática

--Selecione os primeiros 5 registros da tabela clientes, ordenando-os pelo nome em ordem crescente.
select * from clientes
order by nome cresc;
limit 5

--Encontre todos os produtos na tabela produtos que não têm uma descrição associada (suponha que a coluna de descrição possa ser nula).
SELECT * from produtos
where descricao is null;

--Liste os funcionários cujo nome começa com 'A' e termina com 's' na tabela funcionarios.
SELECT * from funcionarios
where nome like 'A%' and nome like '%s';

--Exiba o departamento e a média salarial dos funcionários em cada departamento na tabela funcionarios, agrupando por departamento,
--apenas para os departamentos cuja média salarial é superior a $5000.
SELECT departamento, AVG(salario) as media_salarial from funcionarios
group by departamento
HAVING AVG(salario) > 5000

--Selecione todos os clientes da tabela clientes e concatene o primeiro e o último nome, além de calcular o comprimento total do nome completo.
SELECT 'Nome completo: ' || nome || ' ' || sobrenome || ' tem ' || LENGTH(nome || ' ' || sobrenome) || ' caracteres' AS resultado
FROM clientes;

--Para cada venda na tabela vendas, exiba o ID da venda, a data da venda e a diferença em dias entre a data da venda e a data atual.
SELECT id_venda, data_venda, JULIANDAY(date('now')) - JULIANDAY(data_venda) as diferenca_dias
FROM vendas

--Selecione todos os itens da tabela pedidos e arredonde o preço total para o número inteiro mais próximo.
select nome, ceil(preco_total) from pedidos

--Converta a coluna data_string da tabela eventos, que está em formato de texto (YYYY-MM-DD), para o tipo de data e selecione todos os eventos após '2023-01-01'.
SELECT * FROM eventos
WHERE DATE(data_string) > '2023-01-01';

--Na tabela avaliacoes, classifique cada avaliação como 'Boa', 'Média', ou 'Ruim' com base na pontuação: 1-3 para 'Ruim', 4-7 para 'Média', e 8-10 para 'Boa'.
select avaliacao, nota
CASE
when nota BETWEEN(8,10) then 'Boa'
when nota BETWEEN(1,3) then 'Ruim'
when nota BETWEEN(4,7) then 'Média'
end as classificacao
from avaliacoes

--Altere o nome da coluna data_nasc para data_nascimento na tabela funcionarios e selecione todos os funcionários que nasceram após '1990-01-01'.
ALTER TABLE funcionarios RENAME COLUMN data_nasc TO data_nascimento;

SELECT * FROM funcionarios
WHERE data_nascimento > '1990-01-01';
where data_nascimento BETWEEN (date('now'),'1990-01-01')

1 resposta

Oi, Rafaela! Como vai?

Que ótimo ver você praticando consultas SQL com tabelas como clientes, funcionarios, produtos e vendas. Exercitar comandos como SELECT, FROM, WHERE, GROUP BY e HAVING é fundamental para consolidar o aprendizado em banco de dados, e você demonstrou boa variedade nos seus exemplos.

Seu código abrange conceitos importantes do SQLite, como ORDER BY, LIMIT, funções de data com JULIANDAY, concatenação de colunas, conversão de data com DATE() e expressões condicionais com CASE. Parabéns pela dedicação!

Uma dica para o futuro é utilizar COALESCE() ao trabalhar com colunas que podem ser nulas, como a coluna descricao na tabela produtos. Veja o exemplo:

SELECT nome, COALESCE(descricao, 'Sem descricao') AS descricao
FROM produtos;

Nesse caso, COALESCE() exibe o texto 'Sem descricao' sempre que a coluna estiver nula, tornando o resultado muito mais legível.

Como foi sua experiência ao praticar diferentes comandos SQL nesta atividade, e qual deles você acredita que será mais útil nos seus próximos projetos?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!