

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
A execução da consulta SQL a seguir retornará todos os campos id de B que não existem em A.

Certo
Errado
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
SELECT cidade, AVG(valor) FROM Clientes WHERE id_cliente IN (SELECT id_cliente FROM Pedidos)
SELECT c.cidade, AVG(p.valor) FROM Clientes c JOIN Pedidos p ON c.id_cliente = p.id_cliente GROUP BY c.cidade
SELECT cidade, AVG(valor) FROM Clientes, Pedidos GROUP BY cidade
SELECT cidade, AVG(valor) FROM Clientes LEFT JOIN Pedidos GROUP BY cidade
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:
I, apenas.
I e II, apenas.
II e III, apenas.
I, II e III.
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.
BETWEEN
AND
EXISTS
DISTINCT
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.
SELECT nome
FROM clientes c
WHERE EXISTS (
SELECT 1 FROM contas ct
WHERE ct.id_cliente = c.id_cliente AND
ct.saldo > 1000)
SELECT nome
FROM clientes c
WHERE NOT EXISTS (
SELECT * FROM contas ct
WHERE ct.id_cliente = c.id_cliente AND
ct.saldo < 1000)
SELECT nome
FROM clientes c
JOIN contas ct ON c.id_cliente = ct.id_cliente
WHERE ct.saldo > 1000
SELECT DISTINCT nome
FROM clientes c
JOIN contas ct ON c.id_cliente = ct.id_cliente
WHERE ct.saldo >= 1000
SELECT nome
FROM clientes c
WHERE EXISTS (
SELECT 1 FROM contas ct
WHERE ct.id_cliente = c.id_cliente AND
ct.saldo >= 1000)


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
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 é:
EXISTS.
NULL.
UNIQUE.
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.

Este comando
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.
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.
está incorreto, pois não existe a instrução RIGHT OUTER JOIN no Oracle, mas sim OUTER JOIN.
exibirá o id, nome, local enumero de colaboradores de cada departamento, incluindo aqueles sem colaboradores.
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
);
Certo
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:





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"?
SELECT nome, data_matricula FROM Matriculas WHERE id_curso = (SELECT id_curso FROM Cursos WHERE nome = 'Introdução à Programação');
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';
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';
SELECT nome FROM Alunos WHERE id_aluno IN (SELECT id_aluno FROM Matriculas WHERE id_curso = 'Introdução à Programação');
SELECT nome FROM Alunos UNION SELECT nome FROM Cursos WHERE nome = 'Introdução à Programação';


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
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
Certo
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.
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)
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)
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 ))
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)
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:

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?





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:
I, II e IV, apenas.
I, apenas.
II, III e IV, apenas.
III, apenas.
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?
SELECT DISTINCT id_cliente
FROM Vendas
WHERE valor > AVG(valor);
SELECT id_cliente
FROM Vendas
WHERE valor >= ALL (SELECT valor FROM Vendas);
SELECT id_cliente
FROM Vendas
GROUP BY id_cliente
HAVING AVG(valor) > (SELECT AVG(valor) FROM
Vendas);
SELECT DISTINCT id_cliente
FROM Vendas
WHERE valor > (SELECT AVG(valor) FROM Vendas);
SELECT id_cliente
FROM Vendas
WHERE valor = (SELECT MAX(valor) FROM Vendas);


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
O que é uma subconsulta (subquery) em SQL?
A consulta que é aninhada dentro de outra consulta SQL.
Apelido (alias) para uma tabela.
Função que agrega dados, como SUM() ou COUNT().
Visualização (view) materializada.
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.

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

Para que William obtenha os nomes dos pacientes que foram tratados por todos os médicos, a instrução SQL a ser utilizada é:
select p.nome from paciente p, atendimento a
where a.idpaciente = p.id
and a.idmedico = all (select id from medico);
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));
select p.nome from paciente p where exists (
select idmedico from atendimento where idpaciente = p.id);
select p.nome from paciente p, atendimento a
where a.idpaciente=p.id group by p.nome
having count(*) = (select count(*) from medico);
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’?
SELECT * FROM Clientes WHERE Saldo > 1000 OR Cidade = ‘São Paulo’;
SELECT Nome, Cidade FROM Clientes WHERE Saldo < 1000 AND Cidade = ‘São Paulo’;
SELECT ID, Nome, Cidade, Saldo FROM Clientes WHERE Saldo >= 1000 AND Cidade = ‘São Paulo’;
SELECT * FROM Clientes WHERE Saldo > 1000 AND Cidade = ‘São Paulo’;
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,
as subconsultas são escritas dentro de parênteses e separadas por ponto e vírgula.
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.
não é possível usar uma cláusula GROUP BY em uma subconsulta.
assim como podemos usar o operador BETWEEN com uma subconsulta (na consulta principal), podemos também usar esse operador dentro da subconsulta.
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