Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023
Banco de Dados›Consultas 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 é:
ASELECT Nome, Curso FROM Aluno WHERE Curso == Física%;
BSELECT Nome, Curso FROM Aluno WHERE Curso.Física%;
CSELECT Nome, Curso FROM Aluno WHERE Curso LIKE Física%;
DSELECT Nome, Curso FROM Aluno WHERE Curso(Física%);
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.
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.