Questão nº 49

Questão de Tecnologia da Informação · FGV DATAPREV 2024 (nº 49)

FGV2024Analista de Tecnologia da Informação - Arquitetura, Engenharia e Sustentação TecnológicaTecnologia da Informação
Gabarito: Cver comentário ↓

O esquema de um banco de dados relacional, especificado pelos comandos SQL a seguir, atenderá às consultas

create table candidato
(
    num_inscr int             primary key,
    cpf_cand  char(11)        unique,
    nome      varchar(30)
);

create table questao
(
    id        int             primary key,
    texto     varchar(20)     not null,
    gabarito  char(1)         check (gabarito in
              ('A','B','C','D','E'))
);

create table candidato_questao
(
    num_cand   int,
    cpf_cand   char(11),
    id_quest   int,
    opcao_marc char(1),
    primary key(num_cand,id_quest),
    unique(cpf_cand,id_quest),
    foreign key(num_cand) references candidato,
    foreign key(cpf_cand) references candidato(cpf_cand),
    foreign key(id_quest) references questao
);

Considere a execução dos comandos SQL a seguir:

insert into candidato values
(1,'111','Ferreira'),(2,'333','Andrade'),
(3,'555','Verçosa'),(4,'222','Bastos'),
(5,'444','Lavor');

select nome from candidato
where nome like '__r%'
order by num_inscr asc

Assinale a opção que apresenta a ordem correta dos nomes impressos pelo comando SELECT.

Resposta comentada

Gabarito Alternativa C

O operador LIKE no SQL é usado para encontrar padrões em textos, onde _ (underscore) representa qualquer um caractere e % (percentual) representa zero ou mais caracteres. A cláusula ORDER BY organiza os resultados de uma consulta em ordem crescente (ASC) ou decrescente (DESC) com base em uma ou mais colunas.

  • (A) Incorreta: A condição nome like '__r%' significa que o nome deve ter exatamente dois caracteres, seguidos da letra 'r', e depois qualquer coisa. 'Andrade' não atende a essa condição, pois a terceira letra é 'd', não 'r'.
  • (B) Incorreta: 'Andrade' não satisfaz a condição LIKE.
  • (C) Correta: Os nomes que satisfazem a condição nome like '__r%' são 'Ferreira' (Fe + r + reira) e 'Verçosa' (Ve + r + çosa). Ao aplicar ORDER BY num_inscr asc, 'Ferreira' (num_inscr = 1) vem antes de 'Verçosa' (num_inscr = 3).
  • (D) Incorreta: 'Lavor' não satisfaz a condição LIKE, pois a terceira letra é 'v', não 'r'.
  • (E) Incorreta: Embora 'Verçosa' e 'Ferreira' sejam os nomes corretos, a ordem está invertida. A cláusula ORDER BY num_inscr asc ordena pelo num_inscr em ordem crescente, o que colocaria 'Ferreira' (num_inscr=1) antes de 'Verçosa' (num_inscr=3). A armadilha aqui é desconsiderar ou inverter o efeito do ORDER BY.

Fonte: FGV DATAPREV 2024 Analista de Tecnologia da Informação - Arquitetura, Engenharia e Sustentação Tecnológica (Caderno Tipo 1). 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