Considere a seguinte tabela de um banco de dados relacional:...

Próximas questões
Com base no mesmo assunto
Q4379720 Banco de Dados
Considere a seguinte tabela de um banco de dados relacional:
Aluno (ID, Nome, Sala)
A consulta do PL/SQL para obter o nome dos alunos que comecem com a letra M é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: Como se pedem nomes iniciados por M, é necessário aplicar um predicado de padrão à coluna Nome; entre as opções, apenas C usa LIKE.

Tema central: Correspondência de padrões com LIKE
Análise das alternativas
A
Errada
A expressão Aluno ('M%') não estabelece uma condição sobre a coluna Nome. Colocar o padrão após o nome da tabela não realiza a filtragem: seria necessário compará-lo com Nome em uma condição WHERE usando LIKE.
B
Errada
EQUAL não é um operador de comparação válido nessa sintaxe. Além disso, substituí-lo por = não resolveria a questão: a igualdade compararia o valor completo de Nome com o literal 'M%', sem interpretar % como curinga.
C
Certa
Na alternativa C, SELECT Nome determina a coluna retornada, FROM Aluno identifica a tabela consultada e WHERE Nome LIKE 'M%' restringe as linhas ao padrão solicitado. Nesse padrão, M é o prefixo obrigatório e % admite qualquer sequência posterior, inclusive uma sequência vazia; portanto, não é necessário haver outro caractere depois de M.
D
Errada
IN verifica pertencimento a um conjunto e exige, nessa construção, uma lista ou subconsulta entre parênteses, ausente na alternativa. Mesmo com essa correção sintática, IN não interpretaria 'M%' como padrão de prefixo; ele não substitui o LIKE.
E
Errada
A consulta não declara a tabela Aluno em uma cláusula FROM; escrever Aluno.Nome no SELECT não supre essa ausência. Também utiliza =, que compara Nome com o literal completo 'M%', em vez de buscar valores iniciados por M.
Pegadinha da questão
A presença de 'M%' pode dar a impressão de que a busca por prefixo já está definida. Porém, o símbolo % não funciona como curinga independentemente do operador: é o uso de LIKE que lhe atribui essa função na comparação.
Dica para questões semelhantes
  • Confira separadamente a estrutura da consulta e a condição de busca: a coluna deve estar no SELECT, a tabela no FROM e o predicado de filtragem no WHERE.
  • Ao interpretar um padrão, verifique se ele permite uma continuação vazia: % significa zero ou mais caracteres, e não pelo menos um.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo