Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — VUNESP 2023

Banco de DadosMySQL
Código
vu196194
Banca
VUNESP
Órgão
Pref Marília
Ano
2023
Cargo
Ana ( )

Considere os dois comandos abaixo colocados, emitidos a partir do sistema gerenciador de banco de dados MySQL (8.0).

 

a: SELECT STRCMP (‘fase’, ‘fase2’);

b: SELECT STRCMP (‘tecla’, ‘tecla’);

 

O resultado da execução desses comandos no MySQL (8.0) será, respectivamente

  1. Aa: 0, b: –1.
  2. Ba: –1, b: 1.
  3. Ca: –1, b: 0.
  4. Da: 1, b: 0.
  5. Ea: 1, b: –1.
Revelar gabarito e comentário

GabaritoC — a: –1, b: 0.

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”.

Função STRCMP no MySQL

Gabarito: letra C. A função STRCMP do MySQL compara duas strings e retorna 0 se forem iguais, -1 se a primeira for menor que a segunda (em ordem lexicográfica) e 1 se a primeira for maior. No comando a, 'fase' é menor que 'fase2' (porque é prefixo e mais curto), logo retorna -1; no comando b, as strings são idênticas, logo retorna 0. A alternativa correta é a C.

A função STRCMP (abreviação de string compare) é uma função nativa do MySQL que realiza a comparação de duas strings de forma binária, ou seja, levando em conta a diferenciação entre maiúsculas e minúsculas e também caracteres acentuados. Ela é amplamente utilizada em consultas para ordenar ou filtrar dados textuais, e seu comportamento é definido pela documentação oficial do MySQL.

O retorno da função segue a lógica da comparação lexicográfica (ordem alfabética):

  • Se as duas strings forem exatamente iguais, o retorno é 0.

  • Se a primeira string for menor que a segunda (ou seja, vem antes na ordem alfabética), o retorno é -1.

  • Se a primeira string for maior que a segunda (vem depois na ordem alfabética), o retorno é 1.

Essa comparação é feita caractere por caractere, utilizando os valores binários de cada caractere. No caso de uma string ser prefixo da outra (como 'fase' e 'fase2'), a string mais curta é considerada menor, pois ao chegar ao fim dela, a comparação conclui que ela é menor que a mais longa.

Vamos aplicar isso aos comandos do enunciado:

  • Comando a: SELECT STRCMP('fase', 'fase2'); — A string 'fase' é prefixo de 'fase2' e, portanto, é menor. O retorno é -1.

  • Comando b: SELECT STRCMP('tecla', 'tecla'); — As duas strings são idênticas, então o retorno é 0.

Portanto, a sequência correta é a: -1, b: 0, que corresponde à letra C.

NÃO CAIA NESSA!

A banca explora a confusão entre o retorno da função e o resultado de uma comparação comum. Muitos candidatos invertem os sinais, achando que -1 significa "maior" ou que 0 significa "diferente". Lembre-se: 0 = iguais, -1 = primeira menor, 1 = primeira maior. Outra pegadinha comum é não perceber que 'fase' é menor que 'fase2' por ser prefixo — a string mais curta sempre é menor quando é prefixo da outra.

  1. 1Strings iguais → 0
  2. 21ª menor → -1
  3. 31ª maior → 1
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que a: 0, b: -1. O erro está em inverter os resultados: 'fase' e 'fase2' não são iguais, então a não pode ser 0. Além disso, 'tecla' e 'tecla' são iguais, então b deveria ser 0, não -1. Essa alternativa confunde o caso de igualdade com o caso de diferença.

Alternativa B — ❌ Incorreta

Afirma que a: -1, b: 1. O valor de a está correto (-1), mas b está errado: como as strings são idênticas, o retorno é 0, não 1. O candidato pode ter pensado que 1 indica "iguais", mas na verdade 1 indica que a primeira é maior.

Alternativa C — ✅ Correta ⟵ GABARITO

Apresenta exatamente o comportamento da função: a: -1 (porque 'fase' é menor que 'fase2') e b: 0 (porque as strings são iguais). É a única alternativa que reflete corretamente a lógica da STRCMP.

Alternativa D — ❌ Incorreta

Afirma que a: 1, b: 0. O valor de b está correto (0), mas a está errado: 'fase' é menor que 'fase2', então o retorno deveria ser -1, não 1. Essa alternativa inverte o sinal da comparação, um erro clássico de quem confunde "menor" com "maior".

Alternativa E — ❌ Incorreta

Afirma que a: 1, b: -1. Ambos os valores estão errados: a deveria ser -1 (primeira menor) e b deveria ser 0 (iguais). Essa alternativa inverte completamente a lógica da função.

Gabarito: letra C

Link permanente: /questoes/vu196194