Na linguagem SQL, considerando duas tabelas A e B, para se o . . .
Exercício 6
Na linguagem SQL, considerando duas tabelas A e B, para se obter o que está na Tabela A e não está na Tabela B, assim como o que está na Tabela B e não está na Tabela A é necessário usar o comando
Resolução
Parte 1 da resolução
Para exemplificar a resolução deste exercício, vamos supor que a tabela A e B possuam somente uma coluna chamada NOME_BANCO, que armazena nomes de bancos de dados, conforme ilustrado abaixo:
- TabelaA
-
NOME_BANCO PostgresSQL MySQL Oracle - TabelaB
-
NOME_BANCO Oracle SQLServer MongoDB
Parte 2 da resolução
A Letra A está correta pois ao utilizar o instrução SQL Outer Excluding Join, o resultado serão todos os registros que estão na tabela B, mas que não estejam na tabela A, e todos os registros que estão na tabela A, mas que não estejam na tabela B.
- SQL
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
FULL OUTER JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO
WHERE A.NOME_BANCO is null or B.NOME_BANCO is null- Resultado
-
NOME_BANCO NOME_BANCO PostgresSQL MySQL SQLServer MongoDB
Observação: O Outer Join(não confundir com Outer Excluding Join), tem como resultado todos os registros que estão na tabela A e todos os registros da tabela B.
- SQL
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
FULL OUTER JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO- Resultado
-
NOME_BANCO NOME_BANCO PostgresSQL MySQL Oracle Oracle SQLServer MongoDB
Parte 3 da resolução
A Letra B está errada pois o comando SQL Right Excluding Join, terá como resultado todos os registros que estão na tabela B e que não estejam na tabela A.
- SQL
-
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
RIGHT JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO
WHERE a.NOME_BANCO is null
- Resultado
-
NOME_BANCO NOME_BANCO SQLServer MongoDB
Observação: O Right Join(não confundir com Right Excluding Join), tem como resultado os registros que estão na tabela B e os registros da tabela A que são comuns à tabela B.
- SQL
-
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
RIGHT JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO
- Resultado
-
NOME_BANCO NOME_BANCO Oracle Oracle SQLServer MongoDB
Parte 4 da resolução
A Letra C está errada pois o SQL Left Excluding Join retorna como resultado todos os registros que estão na tabela A e que não estejam na tabela B.
- SQL
-
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
LEFT JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO
WHERE B.NOME_BANCO is null
- Resultado
-
NOME_BANCO NOME_BANCO PostgresSQL MySQL
Observação: O Left Join(não confundir com Left Excluding Join), tem como resultado todos os registros que estão na tabela A e os registros da tabela B que são comuns à tabela A.
- SQL
-
SELECT A.NOME_BANCO, B.NOME_BANCO
FROM TabelaA as A
LEFT JOIN TabelaB as B on A.NOME_BANCO = B.NOME_BANCO
- Resultado
-
NOME_BANCO NOME_BANCO PostgresSQL MySQL Oracle Oracle
Parte 5 da resolução
A Letra D está errada pois não foi encontrado nenhuma referência ao comando Middle Excluding Join.
Resolva também as questões relacionadas abaixo sobre SQL.
Um programador deseja definir uma query SQL para retornar os valores das colunas salario e job_id pa ...
Os comandos DTL são responsáveis por gerenciar diferentes transações ocorridas dentro de um
Em uma tabela chamada Contribuinte de um banco de dados padrão SQL aberto e em condições ideais há o ...
Veja também as perguntas respondidas abaixo.
O que é ? e para que serve a linguagem SQL ?
O que é uma SQL ANSI ?
O que é uma query e como é escrita ?