Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023

Banco de DadosConsultas e Comandos em SQL
Código
vu195607
Banca
VUNESP
Órgão
TJ RS
Ano
2023
Cargo
ATI ( )

Considere a seguinte tabela de um banco de dados relacional:

 

Aluno (ID, Nome, Curso)

 

O comando SQL para obter o nome e o curso dos alunos, com a condição de que o curso se inicie com a palavra Física é:

  1. ASELECT Nome, Curso      FROM Aluno      WHERE Curso == Física%;
  2. BSELECT Nome, Curso      FROM Aluno      WHERE Curso.Física%;
  3. CSELECT Nome, Curso      FROM Aluno      WHERE Curso LIKE Física%;
  4. DSELECT Nome, Curso      FROM Aluno      WHERE Curso(Física%);
  5. ESELECT Nome, Curso      FROM Aluno      WHERE Curso = Física%;
Revelar gabarito e comentário

GabaritoC — SELECT Nome, Curso      FROM Aluno      WHERE Curso LIKE Física%;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos SQL: operador LIKE para correspondência de padrões

Gabarito: letra C. O comando SQL para obter o nome e o curso dos alunos cujo curso se inicia com a palavra "Física" é SELECT Nome, Curso FROM Aluno WHERE Curso LIKE 'Física%' — o operador LIKE é o único que permite correspondência de padrões com curingas (%), e é exatamente isso que a alternativa C apresenta. As demais alternativas usam operadores de comparação (=, ==) ou sintaxes inválidas, que não realizam busca por prefixo.

O operador LIKE é um dos recursos mais cobrados em provas de SQL, pois permite filtrar registros com base em padrões de texto, algo que os operadores de igualdade (=) e diferença (<>) não conseguem fazer. Ele é usado na cláusula WHERE e combina dois curingas principais: o % (porcentagem), que representa zero ou mais caracteres, e o _ (sublinhado), que representa exatamente um caractere. No caso da questão, o padrão 'Física%' significa: a palavra "Física" seguida de qualquer sequência de caracteres — ou seja, cursos como "Física", "Física Nuclear", "Física Médica" e "Física Aplicada" seriam retornados.

A sintaxe correta exige que o padrão seja delimitado por aspas simples ('Física%'), pois se trata de uma string literal. Além disso, o operador LIKE é sensível a maiúsculas e minúsculas em alguns SGBDs (como PostgreSQL), mas insensível em outros (como MySQL, dependendo da collation) — detalhe que pode ser explorado em questões mais avançadas.

É importante distinguir o LIKE de outros operadores de comparação. O = compara igualdade exata de strings, sem qualquer curinga; o == não é um operador válido em SQL padrão (é usado em outras linguagens como Python); e sintaxes como Curso.Física% ou Curso(Física%) simplesmente não existem na linguagem. A banca VUNESP explora exatamente essa confusão: o candidato que não conhece o LIKE tende a escolher uma alternativa com = ou com sintaxe inventada.

Guarde a regra de ouro: sempre que a questão pedir correspondência parcial de texto (início, fim, contém), o operador é LIKE com curingas % e _ — é esse critério que separa a alternativa correta das demais.

1Uso
Correspondência parcial de texto
Prefixo, sufixo ou substring
2Curingas
% (zero ou mais caracteres)
_ (exatamente um caractere)
3Sintaxe
WHERE coluna LIKE 'padrão'
Aspas simples obrigatórias
4Comparação
= (igualdade exata, sem curinga)
== (não existe em SQL)
Operador LIKE
LEVELsoulevel.com.br
Operador LIKE: Uso (Correspondência parcial de texto, Prefixo, sufixo ou substring); Curingas (% (zero ou mais caracteres), _ (exatamente um caractere)); Sintaxe (WHERE coluna LIKE 'padrão', Aspas simples obrigatórias); Comparação (= (igualdade exata, sem curinga), == (não existe em SQL))

Alternativa A — ❌ Incorreta

Usa o operador ==, que não existe em SQL. Em SQL, a comparação de igualdade é feita com = (um único sinal). O == é operador de outras linguagens (Python, Java, C), e a banca o coloca aqui justamente para confundir quem vem de outras áreas de programação. Além disso, o padrão Física% está sem aspas, o que também tornaria o comando inválido.

Alternativa B — ❌ Incorreta

Apresenta a sintaxe WHERE Curso.Física%, que não é válida em SQL. O ponto (.) é usado para qualificar colunas com o nome da tabela (ex.: Aluno.Curso), não para aplicar um padrão de busca. Não existe essa construção para filtrar por prefixo — o correto seria WHERE Curso LIKE 'Física%'.

Alternativa C — ✅ Correta ⟵ GABARITO

Esta é a única alternativa com a sintaxe correta: WHERE Curso LIKE 'Física%'. O operador LIKE permite a correspondência de padrões, e o curinga % ao final indica que o curso deve começar com "Física" e pode ter qualquer sequência de caracteres depois. O padrão está corretamente delimitado por aspas simples, como exige a linguagem SQL.

Alternativa D — ❌ Incorreta

Apresenta a sintaxe WHERE Curso(Física%), que não é válida em SQL. Parênteses não são usados dessa forma para filtrar colunas — eles aparecem em funções (ex.: COUNT(Curso)) ou para agrupar condições, mas não para aplicar padrões de busca. A construção correta é com LIKE.

Alternativa E — ❌ Incorreta

Usa o operador = (igualdade exata), que não realiza correspondência parcial. WHERE Curso = 'Física%' buscaria cursos cujo valor fosse literalmente a string "Física%" (com o caractere % incluso), e não cursos que começam com "Física". Para busca por prefixo, o operador correto é LIKE.

NÃO CAIA NESSA!

A banca explora a confusão entre operadores de comparação exata (=) e o operador de correspondência de padrões (LIKE). O candidato que não domina o LIKE tende a escolher a alternativa E, que usa =, ou a alternativa A, que usa == (operador de outra linguagem). Lembre-se: prefixo, sufixo ou substring → LIKE com % e _.

PEGA ESSA DICA!

Na prova, ao ver uma questão pedindo "inicia com", "termina com" ou "contém", elimine imediatamente as alternativas com = ou == e procure a que usa LIKE. Confira também se o padrão está entre aspas simples — sem elas, o comando é inválido.

Gabarito: letra C

Link permanente: /questoes/vu195607