Voltar para a lista de artigos Artigos
10 minutos de leitura

Prática de SQL para estudantes: 11 exercícios práticos de SQL básico com soluções

Chamando todos os estudantes! Você é curioso em relação ao SQL? Quer aprender ou aprimorar suas habilidades em SQL? Este artigo contém 11 exercícios práticos de SQL com soluções detalhadas.

Você já ouviu dizer que "a prática leva à perfeição"? Provavelmente sim - é por isso que você está procurando recursos para praticar SQL. Se quiser desenvolver habilidades sólidas ou se tornar um especialista em um determinado domínio, é preciso praticar.

Como Rebecca McKeown escreveu em seu excelente artigo Learning SQL? 12 Ways to Practice SQL Online: "Toda teoria e nenhuma prática farão de você um usuário de SQL frustrado!". E ela está certa! Toda vez que você aprende um novo conceito, precisa aplicá-lo imediatamente, praticando. Esse é o objetivo dos exercícios apresentados neste artigo.

A maioria dos exercícios a seguir foi extraída de nosso curso interativo Trilha de Práticas em SQL: University. Esse curso on-line interativo foi criado para pessoas que conhecem SQL e estão procurando exercícios práticos que abrangem consultas em uma única tabela, junções, classificação, agrupamento, agregação e muito mais. Ele faz parte de nossa Trilha de Práticas em SQL que contém mais cursos práticos de SQL para iniciantes.

11 Basic Trilha de Práticas em SQL Exercises with Solutions

Visão geral de um exercício interativo em LearnSQL.com.br.

Mas talvez você ainda não queira se comprometer com um curso completo. Não tem problema! Estes 11 exercícios o ajudarão a praticar e aprimorar suas habilidades em SQL - sem custo e sem compromisso! Aperte o cinto de segurança e vamos começar!

Melhore suas habilidades Trilha de Práticas em SQL

Nossos exercícios práticos de SQL são a combinação perfeita para os alunos: Usarei o modelo universitário, algo com o qual você já deve estar familiarizado! Aqui estão as tabelas que usaremos durante os exercícios:

  • student contém dados básicos relacionados aos alunos da universidade: nome, sobrenome, e-mail, data de nascimento e data de início.
  • lecturer contém dados básicos relacionados aos professores: nome, sobrenome, grau e e-mail.
  • academic_semester contém informações básicas relacionadas aos semestres acadêmicos: ano civil, período, data de início e data de término.
  • course_edition é uma tabela usada para unir as três outras tabelas: course (que não usaremos neste artigo), academic_semester, e lecturer.
11 Basic Trilha de Práticas em SQL Exercises with Solutions

Se você quiser praticar o uso do banco de dados universitário completo, acesse o curso Básico Trilha de Práticas em SQL: Universidade. (Temos uma oferta especial e preços especiais para alunos e professores! Se estiver interessado, consulte nossa oferta de cursos de SQL para alunos ).

11 Exercícios básicos de Trilha de Práticas em SQL

Nesta seção, fornecerei 11 exercícios práticos de SQL com soluções. A dificuldade aumentará gradualmente: Começarei com exercícios muito fáceis e genéricos e introduzirei novos conceitos de SQL pouco a pouco.

Você está pronto para melhorar sua prática de SQL?

Exercício 1: Listar todos os alunos

Exercício

Selecione todos os dados dos alunos no banco de dados.

Solução

SELECT * 
FROM student;

Explicação

Queremos recuperar as informações dos alunos do banco de dados. Portanto, temos de usar a cláusula SELECT e a cláusula FROM na tabela student tabela. O símbolo de asterisco (*) é usado aqui como abreviação para representar os nomes de todas as colunas da tabela students. Observe que todas as instruções SQL terminam com o caractere ponto e vírgula (;).

Exercício 2: Listar todos os nomes de alunos

Exercício

Selecione o primeiro nome e o sobrenome de todos os alunos.

Solução

SELECT first_name, last_name
FROM student;

Explicação

Desta vez, queremos recuperar informações parciais do banco de dados. Podemos fazer isso facilmente indicando o nome das colunas que queremos recuperar - nesse caso, first_name e last_name. Os nomes das colunas são separados por vírgula e seguidos pela instrução FROM com o nome da tabela (student).

Exercício 3: Selecionar um professor específico por ID

Exercício

Selecione o e-mail do professor com o ID 5 no banco de dados.

Solução

SELECT email
FROM lecturer
WHERE id = 5;

Explicação

Desta vez, queremos recuperar as informações do professor no banco de dados. Portanto, temos de usar a cláusula SELECT e a cláusula FROM na tabela lecturer na tabela.

Em um banco de dados, cada tabela normalmente tem uma coluna de chave primária (geralmente chamada ID) que representa um identificador exclusivo para cada entrada. Neste exercício, recuperamos apenas um palestrante (ou seja, uma linha) da tabela lecturer da tabela. Fazemos isso com a cláusula WHERE com a condição id=5.

Nesse caso, estamos usando o operador de comparação "igual" (=). Também poderíamos escrever uma condição com outros operadores de comparação, como >, <, >=, <=, ou <> (não igual a).

Exercício 4: Selecionar alunos pelo sobrenome

Exercício

Selecione todos os dados de qualquer aluno cujo sobrenome seja Durrand.

Solução

SELECT *
FROM student
WHERE last_name = 'Durrand';

Explicação

De volta à tabela student tabela! Neste exercício, queremos recuperar todos os alunos cujo sobrenome é Durrand. A coluna last_name permite valores duplicados; portanto, quando usamos a cláusula WHERE, várias linhas podem ser retornadas.

Observe que as aspas simples (') são usadas no SQL para incluir valores de texto (‘Durrand’).

Exercício 5: Selecionar alunos cujo sobrenome começa com D

Exercício

Selecione o primeiro e o último nome dos alunos cujo sobrenome começa com a letra D.

Solução

SELECT first_name, last_name
FROM student
WHERE last_name LIKE 'D%';

Explicação

Neste exercício, não estamos procurando alunos com um sobrenome exato, mas alunos cujo sobrenome comece com uma letra específica (D). O operador de comparação igual (=) não pode ser usado neste exercício porque não estamos procurando uma correspondência exata. Felizmente, o SQL fornece o operador LIKE que nos permite procurar um padrão especificado.

O uso da cláusula WHERE em combinação com o operador LIKE na coluna last_name resolve o problema! O caractere de porcentagem (%) é usado para representar zero, um ou vários caracteres. Portanto, ‘D%’ aqui significa "Um nome que começa com D seguido por zero, um ou muitos outros caracteres".

Você gostou dos exercícios deste artigo? Você pode encontrar mais no ex celente artigo 10 Beginner Trilha de Práticas em SQL Exercises With Solutions (10 exercícios para iniciantes em com soluções ) do meu amigo Tihomir Babic.

Exercício 6: Usar várias condições para selecionar um semestre acadêmico

Exercício

Selecione todos os dados dos semestres acadêmicos em que estas duas condições são atendidas: o ano é 2020 e o período é primavera.

Solução

SELECT *
FROM academic_semester
WHERE calendar_year = 2020
  AND term = 'spring';

Explicação

Desta vez, somos solicitados a recuperar informações sobre semestres acadêmicos. Vamos executar uma cláusula SELECT na tabela academic_semester na tabela para conseguir isso. Em comparação com os exercícios anteriores, há uma novidade: temos duas condições!

Talvez você se pergunte se várias condições são permitidas no SQL; sim, são! A única coisa que você precisa fazer é usar um operador lógico em combinação com a cláusula WHERE. O SQL oferece três operadores lógicos: AND OR NOT Neste exercício, queremos que as duas condições sejam atendidas, portanto, usamos o operador lógico AND.

Observe que a coluna calendar_year é um tipo de número inteiro, enquanto o termo é uma cadeia de caracteres. É por isso que não usamos aspas ao pesquisar 2020 em calendar_year e usamos aspas simples ao pesquisar o termo "Spring".

Exercício 7: Classificar alunos por sobrenome

Exercício

Selecione o sobrenome e a data de nascimento dos alunos nascidos em 2003 ou depois e classifique-os pelo sobrenome em ordem decrescente (de Z a A).

Solução

SELECT last_name, birth_date
FROM student
WHERE birth_date >= '2003-01-01'
ORDER BY last_name DESC;

Explicação

Neste exercício, recuperamos todos os alunos nascidos em 1º de janeiro de 2003 ou depois. Portanto, nosso filtro será aplicado à coluna birth_date na tabela student tabela.

Se você olhar novamente o diagrama do banco de dados que forneci no início deste artigo, verá que a coluna birth_date tem um tipo de dados de data.

No SQL, as datas são armazenadas na seguinte ordem: ano, mês e dia. Chamamos isso de formato yyyy-mm-dd. Por exemplo, 10 de janeiro de 2023 seria armazenado como 2023-01-10 em um banco de dados.

O SQL também usa aspas simples para incluir datas (10 de janeiro de 2023 é escrito como ‘2023-01-10’) e comparações são permitidas em datas. Portanto, para criar a consulta de que precisamos, usamos a cláusula WHERE com o símbolo de comparação maior ou igual a (>=) na data de nascimento.

Em seguida, ordenamos o resultado por sobrenome graças à palavra-chave ORDER BY. A palavra-chave DESC indica aqui que o resultado será classificado em ordem decrescente (de Z a A). Se você quiser classificar por ordem crescente, use a palavra-chave ASC.

Exercício 8: Alunos nascidos entre 2003 e 2004

Exercício

Selecione o nome, o sobrenome e a data de nascimento dos alunos nascidos entre 2003 e 2004 no banco de dados.

Solução

SELECT first_name, last_name, birth_date
FROM student
WHERE birth_date >= '2003-01-01'
AND birth_date <='2004-12-31';

Explicação

Neste exercício, recuperamos os registros de todos os alunos nascidos a partir de 1º de janeiro de 2003 e antes ou em 31 de dezembro de 2003. Usamos a cláusula SELECT.

Vimos no exercício anterior que as comparações são permitidas em datas, portanto, nossa condição aqui é  birth_date >= '2003-01-01' AND birth_date <='2004-12-31'

Exercício 9: Contar alunos para cada data de início

Exercício

Selecione a data de início de todos os alunos e mostre quantos alunos têm a mesma data de início.

Solução

SELECT start_date, COUNT(*)
FROM student
GROUP BY start_date;

Explicação

Neste exercício, queremos recuperar a data de início de todos os alunos e mostrar quantos alunos têm a mesma data de início. Portanto, basicamente, precisamos de uma coluna que mostre as datas de início sem valores duplicados e outra coluna que mostre o número de alunos com datas de início idênticas.

A instrução GROUP BY permite agrupar as linhas com os mesmos valores (aqui, a data de início). Além disso, usamos a função de agregação COUNT() para mostrar o número de linhas que correspondem ao valor da data de início.

Exercício 10: Selecionar, agrupar e filtrar os resultados

Exercício

Localize as datas de início em que havia mais de 15 alunos. Exiba a data de início e o número de alunos que começaram nessa data.

Solução

SELECT start_date, COUNT(*)
FROM student
GROUP BY start_date
HAVING COUNT(*) > 15;

Explicação

Queremos executar a mesma consulta do exercício anterior, mas com uma pequena diferença: queremos filtrar os resultados para mostrar apenas aqueles que correspondem a uma determinada quantidade.

Da mesma forma, executamos um SELECT na tabela student tabela. Agrupamos o resultado por data de início e usamos a função de agregação COUNT(). Por fim, usamos a cláusula HAVING no final da consulta para remover do conjunto de resultados as datas de início que têm menos de 15 alunos.

Exercício 11: Quantos cursos cada professor ministra?

Exercício

Para cada professor, descubra quantos cursos ele ministra em cada semestre acadêmico. Exiba o nome e o sobrenome do professor, o ano civil, o período e o número de cursos ministrados pelo professor nesse semestre.

Solução

SELECT
   lec.first_name,
   lec.last_name,
   acs.calendar_year,
   acs.term,
   COUNT(course_id)
FROM lecturer AS lec
JOIN course_edition AS ce 
  ON ce.lecturer_id = lec.id
JOIN academic_semester AS acs 
  ON ce.academic_semester_id = acs.id
GROUP BY lec.id, acs.id;

Explicação

Este exercício é um pouco mais difícil. Temos de unir três tabelas: lecturer, course_edition, e academic_semester. Fazemos isso usando ooperador JOIN. Em seguida, usamos a cláusula GROUP BY para agrupar as edições do curso ministradas pelo mesmo professor no mesmo semestre acadêmico. Por fim, usamos a função COUNT() para contar quantos cursos um professor tem nesse semestre.

O artigo Junções de SQL: 12 perguntas práticas com respostas detalhadas, de Tihomir Babic, tem mais prática de SQL join, caso você tenha interesse.

Quer mais Trilha de Práticas em SQL?

Espero que este artigo tenha feito você praticar suas habilidades em SQL e o tenha inspirado a iniciar um caminho de aprendizado de SQL!

Se você gostou dos exercícios deste artigo, lembre-se de que a maioria deles foi extraída do curso Trilha de Práticas em SQL: University on LearnSQL.com.br. Ele faz parte de nossa trilhaTrilha de Práticas em SQL , que contém mais 8 cursos e quase 1.000 exercícios; isso é muita experiência prática!

Se você quiser se aprofundar no SQL, recomendo nosso pacote Ilimitado Vitalício SQL Package. Essa oferta contém todos os cursos de SQL atuais e futuros em quatro dialetos SQL diferentes. Também temos uma oferta especial para estudantes.

Obrigado por ler este artigo; vejo você no próximo!