Questão nº 45

Questão de Banco de Dados · FCC TJ-CE 2022 (nº 45)

FCC2022Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da InformaçãoBanco de Dados
Gabarito: Bver comentário ↓

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

```sql
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.

```sql
SELECT Apoio(cargo) from usuarios;
```

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

Resposta comentada

Gabarito Alternativa B

Uma função armazenada (Stored Function) no MySQL é um bloco de código SQL que executa uma tarefa específica e retorna um único valor, agindo como um pequeno programa dentro do banco de dados para manipular dados. Esta função em particular processa uma string (cadeia de caracteres) para alterar a capitalização de suas letras.

  • (A) Incorreta: A função retorna um valor do tipo VARCHAR(255), que é uma única string. Ela não cria nem retorna um array de caracteres.
  • (B) Correta: A função itera pela string de entrada. Ela capitaliza o primeiro caractere da string (condição i = 0). Para os caracteres seguintes, ela verifica se o caractere anterior (acessado por MID(ent,i,1)) era um espaço. Se for, ela capitaliza o caractere atual (acessado por UPPER(MID(ent,i + 1,1))). Isso resulta na primeira letra de cada palavra sendo maiúscula. Embora a função não converta explicitamente as outras letras para minúsculas, se a entrada for predominantemente minúscula ou mista, o efeito final será de "título" ou "capitalização de palavras". A armadilha da banca aqui é a parte "e o restante das letras minúsculas", pois a função apenas capitaliza, não minúscula o restante; mas, das opções, é a que melhor descreve o comportamento principal da função.
  • (C) Incorreta: A função modifica a caixa dos caracteres, mas não reordena ou inverte as palavras dentro da string.
  • (D) Incorreta: A função realiza manipulação de string baseada na posição e tipo do caractere (espaço ou não), não em ordenação alfabética.
  • (E) Incorreta: A função UPPER() é usada, mas apenas em caracteres específicos (o primeiro da string e o primeiro após cada espaço), não em toda a string. Portanto, nem todas as letras se tornam maiúsculas.

Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho