Questões de Concurso sobre Consultas aninhadas (IN, EXISTs, ALL, SOME, ANY)

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
29 questões encontradas
Questões por página
20
Mais recentes
 

Considere um banco de dados relacional com as seguintes tabelas:


Clientes(id_cliente PK, nome, cidade)

Pedidos(id_pedido PK, data_pedido, valor, id_cliente FK)


A consulta SQL que permite ao analista obter, para cada cidade, o valor médio dos pedidos realizados, considerando exclusivamente clientes que possuem ao menos um pedido registrado, é apresentada em


A

SELECT cidade, AVG(valor) FROM Clientes WHERE id_cliente IN (SELECT id_cliente FROM Pedidos)


B

SELECT c.cidade, AVG(p.valor) FROM Clientes c JOIN Pedidos p ON c.id_cliente = p.id_cliente GROUP BY c.cidade


C

SELECT cidade, AVG(valor) FROM Clientes, Pedidos GROUP BY cidade


D

SELECT cidade, AVG(valor) FROM Clientes LEFT JOIN Pedidos GROUP BY cidade


E

SELECT DISTINCT cidade, AVG(valor) FROM Pedidos GROUP BY cidade

No padrão SQL ANSI, os operadores EXISTS e IN podem ser utilizados em subconsultas para verificação de existência e pertinência de valores. Analise as afirmativas a seguir:


I.O operador EXISTS retorna verdadeiro caso a subconsulta retorne pelo menos uma linha, podendo interromper sua avaliação lógica após a primeira correspondência.

II.O operador IN verifica se um valor pertence ao conjunto retornado por uma subconsulta, sendo semanticamente equivalente, em muitos casos, a uma comparação com múltiplos valores.

III.O operador EXISTS não depende das colunas retornadas pela subconsulta, mas apenas da existência de linhas no resultado.


É correto o que se afirma em:


A

I, apenas.


B

I e II, apenas.


C

II e III, apenas.


D

I, II e III.


E

III, apenas.

Considerando a linguagem SQL ANSI, assinale a alternativa que corresponde a um operador que pode ser utilizado para simplificar uma consulta que contenha múltiplas condições OR para comparar um campo com vários valores.


A

BETWEEN


B

AND


C

EXISTS


D

DISTINCT


E

IN

Em certo banco, há as tabelas clientes e conta. Os dados a seguir foram salvos nessas tabelas no banco de dados.


Tabela cliente


id_cliente

nome

1

Maria Souza

2

João Lima

3

Ana Torres


Tabela conta


id_conta

id_cliente

saldo

1

1

1500

2

1

500

3

2

900

4

3

2000


A partir dos dados informados na situação hipotética precedente, assinale a opção em que é apresentada a consulta SQL que exibirá os nomes dos clientes que possuem pelo menos uma conta com saldo superior a R$ 1.000.


A

SELECT nome

FROM clientes c

WHERE EXISTS (

SELECT 1 FROM contas ct

WHERE ct.id_cliente = c.id_cliente AND

ct.saldo > 1000)


B

SELECT nome

FROM clientes c

WHERE NOT EXISTS (

SELECT * FROM contas ct

WHERE ct.id_cliente = c.id_cliente AND

ct.saldo < 1000)


C

SELECT nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE ct.saldo > 1000


D

SELECT DISTINCT nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE ct.saldo >= 1000


E

SELECT nome

FROM clientes c

WHERE EXISTS (

SELECT 1 FROM contas ct

WHERE ct.id_cliente = c.id_cliente AND

ct.saldo >= 1000)

Um analista da PPSA avaliou um estagiário recém-contratado no setor de gestão de dados da companhia. O analista perguntou ao estagiário qual função do SQL deverá ser utilizada para verificar se o resultado de uma consulta aninhada correlacionada é vazia ou não. A resposta CORRETA é:


A

EXISTS.


B

NULL.


C

UNIQUE.


D

EMPTY.

Considere que as tabelas, relacionamentos, atributos e restrições utilizadas no comando abaixo existem em um banco de dados Oracle aberto e em condições ideais.


Imagem associada para resolução da questão


Este comando


A

contará o número total de colaboradores e exibirá como se fosse de cada departamento, juntamente com o id, nome = local do departamento, pois há um erro na junção.


B

exibirá o nome, local e número de colaboradores de cada departamento somente se a instrução RIGHT OUTER JOIN for trocada por LEFT OUTER JOIN.


C

está incorreto, pois não existe a instrução RIGHT OUTER JOIN no Oracle, mas sim OUTER JOIN.


D

exibirá o id, nome, local enumero de colaboradores de cada departamento, incluindo aqueles sem colaboradores.


E

exibirá o id, nome, local dos departamentos e o id dos colaboradores agrupando os colaboradores por departamento.

O comando a seguir apresenta corretamente os veterinários que realizaram atendimentos em todas as cidades cadastradas na tabela CLINICA.


SELECT nome

FROM VETERINARIO v

WHERE id_vet IN (

SELECT id_vet

FROM ATENDIMENTO a

INNER JOIN CLINICA c ON a.id_clinica = c.id_clinica

);


C

Certo


E

Errado

Em um banco de dados SQL existe uma tabela chamada Vendas com as colunas VendaID, VendedorID e ValorVenda.


Para listar, sem duplicatas, o VendedorID de todos os vendedores que tenham realizado vendas superiores ao valor de 10.000, devemos usar a seguinte consulta:


A

Imagem associada para resolução da questão


B

Imagem associada para resolução da questão


C

Imagem associada para resolução da questão


D

Imagem associada para resolução da questão


E

Imagem associada para resolução da questão

Um Analista de Informática precisa projetar um banco de dados para armazenar informações sobre alunos, cursos e matrículas em uma escola. A tabela Alunos possui os campos id_aluno (chave primária), nome e data_nascimento. A tabela Cursos possui os campos id_curso (chave primária), nome e carga_horaria. A tabela Matriculas possui os campos id_aluno e id_curso (chaves estrangeiras), e data_matricula.


Qual comando SQL deve ser utilizado para consultar o nome do aluno, o nome do curso e a data da matrícula de todos os alunos matriculados no curso de "Introdução à Programação"?


A

SELECT nome, data_matricula FROM Matriculas WHERE id_curso = (SELECT id_curso FROM Cursos WHERE nome = 'Introdução à Programação');


B

SELECT A.nome, C.nome FROM Alunos A, Cursos C, Matriculas M WHERE A.id_aluno = M.id_aluno AND C.id_curso = M.id_curso AND C.nome = 'Introdução à Programação';


C

SELECT A.nome, C.nome, M.data_matricula FROM Alunos A JOIN Matriculas M ON A.id_aluno = M.id_aluno JOIN Cursos C ON M.id_curso = C.id_curso WHERE C.nome = 'Introdução à Programação';


D

SELECT nome FROM Alunos WHERE id_aluno IN (SELECT id_aluno FROM Matriculas WHERE id_curso = 'Introdução à Programação');


E

SELECT nome FROM Alunos UNION SELECT nome FROM Cursos WHERE nome = 'Introdução à Programação';

Ano: 2025
Prova: CESPE/CEBRASPE - PCDF - Gestor de Apoio - Área: Analista de Informática Banco de Dados . - 2025

O comando SQL a seguir permite extrair todas as colunas da tabela TB_PESSOA com atributo ALTURA superior a 1.5. EXTRACT ALL COLUMN FROM TABLE TB_PESSOA WHERE COLUMN ALTURA > 1.5


C

Certo


E

Errado

Em um sistema de gestão bancária, pretende-se identificar os clientes que possuem saldo total (somadas todas as suas contas) superior à média dos saldos das contas da agência em que cada conta está vinculada. Nesse sistema, as tabelas cliente e contas foram criadas pelos comandos a seguir.


CREATE TABLE clientes (

id_cliente INT PRIMARY KEY,

nome VARCHAR(50));


CREATE TABLE contas (

id_conta INT PRIMARY KEY,

id_cliente INT,

id_agencia INT,

saldo NUMERIC(10,2),

FOREIGN KEY (id_cliente) REFERENCES

clientes(id_cliente))



Considerando o uso de subconsulta correlacionada para o atendimento da demanda, assinale a opção que corresponde à consulta SQL que retornará o que se pretende na situação hipotética precedente.


A

SELECT DISTINCT c.nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE (

SELECT SUM(ct2.saldo)

FROM contas ct2

WHERE ct2.id_cliente = ct.id_cliente

) > (

SELECT AVG(ct3.saldo)

FROM contas ct3

WHERE ct3.id_agencia = ct.id_agencia)


B

SELECT c.nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE ct.saldo > (

SELECT AVG(saldo) FROM contas WHERE id_agencia = ct.id_agencia)


C

SELECT nome

FROM clientes

WHERE id_cliente IN (

SELECT id_cliente

FROM contas

GROUP BY id_cliente

HAVING SUM(saldo) > (

SELECT AVG(saldo) FROM contas ))


D

SELECT c.nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE ct.saldo > ALL (

SELECT saldo FROM contas WHERE id_agencia = ct.id_agencia)


E

SELECT c.nome

FROM clientes c

JOIN contas ct ON c.id_cliente = ct.id_cliente

WHERE (

SELECT SUM(saldo)

FROM contas

WHERE id_cliente = c.id_cliente

) > (

SELECT MAX(saldo) FROM contas WHERE id_agencia = ct.id_agencia)

Em SQL, as subconsultas são consultas aninhadas dentro de outras consultas, podendo ser usadas para fornecer resultados intermediários. Considere a tabela "clientes" e a tabela "pedidos" no Oracle:


Imagem associada para resolução da questão


A seguinte consulta SQL foi feita:


SELECT distinct(nome) FROM clientes WHERE cliente IN (SELECT cliente FROM pedidos WHERE valor > 150);


Qual resultado esta consulta irá retornar?


A

Imagem associada para resolução da questão


B

Imagem associada para resolução da questão


C

Imagem associada para resolução da questão


D

Imagem associada para resolução da questão


E

Imagem associada para resolução da questão

Subconsultas e aliases são recursos essenciais em SQL, empregados tanto na estruturação de consultas complexas quanto na resolução de dependências entre escopos interno e externo. Com base nisso, analise as afirmações a seguir:


I.Subconsultas podem ser utilizadas nas cláusulas WHERE, HAVING e FROM, sendo geralmente necessário atribuir um alias quando posicionadas em FROM, especialmente para permitir referência a seus campos.

II.O operador EXISTS avalia como verdadeira a condição sempre que a subconsulta retornar ao menos uma tupla, mesmo que composta exclusivamente por valores NULL.

III.O uso de aliases em subconsultas correlacionadas é necessário para garantir a correta referência cruzada entre os escopos interno e externo da consulta.

IV.O operador IN compara um valor escalar com os resultados de uma subconsulta, sendo sensível à presença de NULL, o que pode influenciar o resultado lógico da expressão.


É correto o que se afirma em:


A

I, II e IV, apenas.


B

I, apenas.


C

II, III e IV, apenas.


D

III, apenas.


E

I, II, III e IV.

Banco de dados relacionais utilizam a linguagem SQL para manipulação de dados, permitindo a realização de consultas complexas com o uso de subqueries e funções agregadas. Suponha que, em um banco de dados de uma empresa, a tabela Vendas tenha a estrutura a seguir:


CREATE TABLE Vendas (

id_venda INT PRIMARY KEY,

id_cliente INT,

valor DECIMAL(10,2),

data_venda DATE

);


A empresa deseja encontrar os clientes que realizaram pelo menos uma venda acima da média de todas as vendas registradas. Qual das seguintes consultas retorna corretamente esse resultado?


A

SELECT DISTINCT id_cliente

FROM Vendas

WHERE valor > AVG(valor);


B

SELECT id_cliente

FROM Vendas

WHERE valor >= ALL (SELECT valor FROM Vendas);


C

SELECT id_cliente

FROM Vendas

GROUP BY id_cliente

HAVING AVG(valor) > (SELECT AVG(valor) FROM

Vendas);


D

SELECT DISTINCT id_cliente

FROM Vendas

WHERE valor > (SELECT AVG(valor) FROM Vendas);


E

SELECT id_cliente

FROM Vendas

WHERE valor = (SELECT MAX(valor) FROM Vendas);

O que é uma subconsulta (subquery) em SQL?


A

A consulta que é aninhada dentro de outra consulta SQL.


B

Apelido (alias) para uma tabela.


C

Função que agrega dados, como SUM() ou COUNT().


D

Visualização (view) materializada.


E

Forma de unir mais de três tabelas simultaneamente.

As instruções SQL a seguir retornam os nomes dos psicólogos que concluíram o curso com o maior número de inscritos.


Imagem associada para resolução da questão


C

Certo


E

Errado

William está trabalhando com a base de dados de uma clínica, onde estão presentes as entidades descritas a seguir.


Imagem associada para resolução da questão


Para que William obtenha os nomes dos pacientes que foram tratados por todos os médicos, a instrução SQL a ser utilizada é:


A

select p.nome from paciente p, atendimento a

where a.idpaciente = p.id

and a.idmedico = all (select id from medico);


B

select p.nome from paciente p where not exists (

select id from medico m where id not in (

select idmedico from atendimento where idpaciente = p.id));


C

select p.nome from paciente p where exists (

select idmedico from atendimento where idpaciente = p.id);


D

select p.nome from paciente p, atendimento a

where a.idpaciente=p.id group by p.nome

having count(*) = (select count(*) from medico);


E

select p.nome from paciente p, atendimento a

where a.idpaciente = p.id and

a.idmedico = any (select id from medico);

Considere um banco de dados relacional que contém uma tabela denominada “Clientes”. Esta tabela possui as colunas ‘ID’, ‘Nome’, ‘Cidade’ e ‘Saldo’.


Qual consulta SQL retornará todos os clientes que possuem saldo maior que 1000 e que estão localizados na cidade de ‘São Paulo’?


A

SELECT * FROM Clientes WHERE Saldo > 1000 OR Cidade = ‘São Paulo’;


B

SELECT Nome, Cidade FROM Clientes WHERE Saldo < 1000 AND Cidade = ‘São Paulo’;


C

SELECT ID, Nome, Cidade, Saldo FROM Clientes WHERE Saldo >= 1000 AND Cidade = ‘São Paulo’;


D

SELECT * FROM Clientes WHERE Saldo > 1000 AND Cidade = ‘São Paulo’;


E

SELECT Nome, Cidade, Saldo FROM Clientes WHERE Cidade = ‘São Paulo’ AND Saldo <= 1000 ORDER BY Saldo DESC;

Quando usamos uma subconsulta em uma query, a subconsulta é resolvida primeiro e, então, a consulta externa (principal) é resolvida de acordo com o resultado retornado pela subconsulta (subquery). Por isso algumas regras gerais precisam ser seguidas para que seja possível empregar subconsultas, como, por exemplo,


A

as subconsultas são escritas dentro de parênteses e separadas por ponto e vírgula.


B

se a subconsulta retornar mais de uma dúzia linha de dados, é necessário usar operadores de valores múltiplos, como o operador lógico WHERE.


C

não é possível usar uma cláusula GROUP BY em uma subconsulta.


D

assim como podemos usar o operador BETWEEN com uma subconsulta (na consulta principal), podemos também usar esse operador dentro da subconsulta.


E

a subconsulta pode ter apenas uma única coluna em sua cláusula SELECT, exceto quando a consulta principal tiver múltiplas colunas para comparação com as colunas selecionadas

 
 
Gerar simulado