FC ConcursosFC Concursos

Questão FC369492

Seja um banco de dados relacional especificado em SQL de uma empresa de correspondência entre clientes, instituições financeiras e empréstimos contratados por esses clientes nessas

Linguagem SQL

FGV · 2024

Seja um banco de dados relacional especificado em SQL de uma empresa de correspondência entre clientes, instituições financeiras e empréstimos contratados por esses clientes nessas instituições, previamente implementado em um banco de dados como a seguir:

 

create table tb_cliente
(
    id_cliente     integer       primary key,
    num_cpf        char(11)      unique,
    nome           varchar(50)   not null,
    email          varchar(20),
    telefone       varchar(20),
    endereco       varchar(100),
    cidade         varchar(20),
    estado         char(2)
);

create table tb_financeira
(
    id_financeira  integer       primary key,
    razao_social   varchar(30)   not null,
    cidade         varchar(30)   not null,
    estado         char(2)       not null
);

create table tb_emprestimo
(
    id_financeira  integer       references tb_financeira,
    id_cliente     integer       references tb_cliente,
    valor          real          not null check(valor > 0),
    dia            integer       not null check(dia >= 1 and dia <= 31),
    mes            integer       not null check(mes >= 1 and mes <= 12),
    ano            integer       not null check(ano >= 1980 and ano <= 2100),
    primary key(id_financeira, id_cliente, dia, mes, ano)
);

 

OBS: Neste banco de dados, cadeias de caracteres (strings) são representadas envoltas em aspas simples.

 

Para a conferência de empréstimos realizada pelos clientes, os auditores dispõem da seguinte visão:

 

create view v_max_emp_cli(cli,ano,val) as

select c.nome, e.ano, count(e.valor)

from tb_cliente c, tb_emprestimo e

group by c.nome, e.ano

 

Um auditor deseja saber quais os clientes cujo nome termina em ‘MORAES’ no ano de 2024, utilizando essa estrutura de visão anteriormente apresentada.

 

Assinale a opção que apresenta a consulta que atende ao objetivo em tela, sabendo-se que os nomes dos clientes foram todos cadastrados utilizando-se exclusivamente caracteres alfabéticos maiúsculos.

  1. select c.nome from v_max_emp_cli where cli = '%MORAES' and ano = 2024
  2. select c.nome from v_max_emp_cli where cli LIKE '%MORAES%' and ano = 2024
  3. select cli from v_max_emp_cli where cli = '%MORAES' and ano = 2024
  4. select cli from v_max_emp_cli where cli like '%MORAES' and ano = 2024
  5. select cli from v_max_emp_cli where cli like '%MORAES%' and ano = 2024
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A consulta correta é select cli from v_max_emp_cli where cli like '%MORAES' and ano = 2024. Ela explora diretamente a visão disponibilizada, que já possui as colunas cli (nome do cliente) e ano.

O operador like com o padrão '%MORAES' usa o caractere curinga % para indicar qualquer sequência de caracteres antes de MORAES, portanto seleciona nomes que terminam em MORAES. Como os nomes foram cadastrados em letras maiúsculas, não há necessidade de manipulação de caixa.

A cláusula ano = 2024 restringe os resultados ao ano desejado. A consulta retorna apenas a coluna cli, isto é, os nomes dos clientes que satisfazem ambas as condições.

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

Continue aprendendo