Considere a seguinte tabela de um banco de dados relacional...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: C
O tema da questão envolve a seleção e filtragem de dados em um banco de dados SQL, juntamente com a ordenação dos resultados. Para resolver tal questão, o examinando precisa estar familiarizado com o comando SELECT, o uso de WHERE para aplicar condições, o uso do operador LIKE para filtrar strings e o comando ORDER BY para classificar os resultados.
O uso do operador LIKE é comum quando é necessário realizar uma busca por padrões de string semelhantes. Nesse caso, os símbolos de percentual % são usados como curingas substitutos para qualquer sequência de caracteres. A expressão "%Silva%" irá buscar qualquer ocorrência de sobrenomes que contenham "Silva" em qualquer parte da string. Além disso, o comando ORDER BY é utilizado para ordenar os resultados de acordo com uma ou mais colunas, e a ausência do ASC ou DESC indica ordenação ascendente por padrão.
O gabarito correto (alternativa C) faz uso corretamente das expressões e comandos mencionados:
FROM Funcionário
WHERE Sobrenome LIKE "%Silva%"
ORDER BY Nome;
Esta consulta retorna as colunas Nome e Função de todos os funcionários cujo sobrenome contém a palavra "Silva", e ordena esses resultados pelo nome de forma ascendente.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Para esta questão só ao observar o Order By Nome
já se entende que está ordenando então é a correta o restante não tem ordenação de comando SQL.
A): Comando IN serve para agrupar múltiplas condições de busca. Não achei referencias de uso delimitado por hashtags. SET é usado com o comando UPDATE para atualizar um valor. ERRADA
B): SIMILAR TO retorna true se encontrada uma expressão literal de acordo (mais expensiva computacionalmente que o LIKE). SET é usado com o comando UPDATE para atualizar um valor. ERRADA
C): LIKE busca uma expressao delimitada por "%" ou "_", e no caso em tela, eu busco uma expressão exata "%silva%". ORDER BY ordena de forma ascendente se não colocado com o comando DESC. CORRETO
D): Setinha estraga a questão, pq nem sei como digitar isso no teclado. ERRADA
E): Mesma coisa da setinha, não achei nada relacionado ao PUT; comandos para inserir dados e atualizar são INSERT e UPTDATE, respectivamente.ERRADA
Estou descrevendo assim para que eu tbm entenda e comece a memorizar esses comandos. Qualquer b.o sinta-se a vontade para corrigir.
Vamos analisar as opções:
A. SELECT Nome, Função FROM Funcionário WHERE Sobrenome IN “#Silva#” SET BY Nome; - Incorreta. A cláusula IN não é usada dessa forma em consultas com texto e o uso de SET BY Nome não é válido.
B. SELECT Nome, Função FROM Funcionário WHERE Sobrenome SIMILAR “@Silva@” SET BY Nome; - Incorreta. O operador SIMILAR não é usado para comparações de texto com curingas, e o uso de SET BY Nome não é válido.
C. SELECT Nome, Função FROM Funcionário WHERE Sobrenome LIKE “%Silva%” ORDER BY Nome; - Correta. Esta consulta usa a cláusula LIKE para buscar sobrenomes que contenham "Silva" em qualquer parte e, em seguida, ordena os resultados pelo atributo Nome.
D. SELECT Nome, Função FROM Funcionário WHERE Sobrenome = &Silva& Nome ↑; - Incorreta. O uso de & não é adequado para comparações de texto em SQL, e o termo "Nome ↑" não é válido para ordenação.
E. SELECT Nome, Função FROM Funcionário WHERE Sobrenome JUST LIKE “$Silva%” PUT Nome ↑; - Incorreta. JUST LIKE não é uma construção válida em SQL, e o uso de "PUT Nome ↑" não faz sentido nesta consulta.
Portanto, a opção correta é a C. SELECT Nome, Função FROM Funcionário WHERE Sobrenome LIKE “%Silva%” ORDER BY Nome.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo