FC ConcursosFC Concursos

Questão FC372883

Considere a função abaixo criada em um banco de dados MySQL em condições ideais, que possui a tabela usuarios com os campos usuario, senha e cargo, todos do tipo varchar. CREATE DE

Linguagem SQL

FCC · 2022

Considere a função abaixo criada em um banco de dados MySQL em condições ideais, que possui a tabela usuarios com os campos usuario, senha e cargo, todos do tipo varchar.

 

CREATE DEFINER=`root`@`localhost` FUNCTION `Apoio`(ent VARCHAR(255)) RETURNS varchar(255) CHARSET utf8mb4

DETERMINISTIC

BEGIN

DECLARE len INT;

DECLARE i INT;

SET len = CHAR_LENGTH(ent);

SET i = 0;

WHILE (i < len) DO

IF (MID(ent,i,1) = ' ' OR i = 0) THEN

IF (i < len) THEN

SET ent = CONCAT(

LEFT(ent,i),

UPPER(MID(ent,i + 1,1)),

RIGHT(ent,len - i - 1)

);

END IF;

END IF;

SET i = i + 1;

END WHILE;

RETURN ent;

END

 

Esta função foi executada pelo comando abaixo.

 

SELECT Apoio(cargo) from usuarios;

 

Espera-se, como resultado, uma lista com os conteúdos do campo cargo

  1. separada em um array onde cada caractere ocupa uma posição do array.
  2. com a primeira letra, de cada palavra que compõe o nome do cargo, maiúscula e o restante das letras minúsculas.
  3. com as palavras que compõem o nome do cargo em posições invertidas, caso o cargo tenha mais que uma palavra.
  4. em ordem alfabética decrescente.
  5. com todas as letras maiúsculas.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A alternativa está correta: a função torna a primeira letra de cada palavra em maiúscula, produzindo nomes de cargo com as iniciais capitalizadas.

Isso ocorre porque a rotina percorre a string com um laço (variável i, começando em \(i = 0\)) e, quando encontra o início (i = 0) ou um espaço (MID(ent,i,1) = ' '), aplica UPPER ao próximo caractere (MID(ent,i+1,1)) e reconstrói a string com LEFT, CONCAT e RIGHT.

Ex.: "tec concursos" → primeira iteração torna "T", ao achar o espaço torna "C", resultando "Tec Concursos".

Observação: a função só força as letras iniciais em maiúscula; se houver maiúsculas em outras posições na entrada, elas não são explicitamente convertidas para minúsculas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo