Usando operadores de conjunto Oracle (União, União Todos, Intersecção e Menos/Exceto)
Os operadores Oracle Set podem ser usados para selecionar dados de várias tabelas. Eles combinam os resultados de duas ou mais consultas. Ao usar os operadores Set
a) Cada cláusula SELECT deve ter o mesmo número de colunas
b) A coluna deve ser do mesmo tipo de dados
c) A coluna deve ser especificada na mesma ordem em todas as cláusulas de seleção.
Existem 4 operadores Set:
UNIÃO | Ele retorna todas as linhas exclusivas retornadas de ambas as consultas |
UNIÃO TODOS | Ele retorna todas as linhas, incluindo duplicatas |
INTERSECT | Ele retorna apenas as linhas retornadas de ambas as consultas |
MENOS | Ele retorna linhas exclusivas selecionadas pela primeira consulta, mas não as linhas selecionadas pela segunda consulta |
Operador da Oracle Union:
O operador Oracle Union é usado para combinar os conjuntos de resultados de duas ou mais instruções SELECT. Ele combina o conjunto de resultados da instrução SELECT e remove as linhas duplicadas entre eles.
SELECT city_name FROM CUST_DATA
UNION
SELECT nome_da_cidade FROM SUPP_DATA;
Esta consulta retornará linhas distintas de cidades de "Cust_data" e "Supp_data"
Oráculo União Todos
O operador Oracle Union All é usado para combinar os conjuntos de resultados de duas ou mais instruções SELECT. Ele combina os dois conjuntos de resultados da instrução SELECT e retorna como está. Portanto, pode conter duplicatas também dependendo do conjunto de dados
SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;
Esta consulta retornará todas as linhas (também linhas duplicadas) de cidades de "Cust_data" e "Supp_data"
Diferença entre Union e Union All no Oracle
Union retorna as linhas distintas, enquanto Union all retorna todas as linhas. Portanto, temos que ter muito cuidado ao escolher esses operadores de conjunto
Oracle Intersect
O operador Oracle Intersect é usado para combinar os conjuntos de resultados de duas ou mais instruções SELECT. Ele combina os dois conjuntos de dados da instrução SELECT e retorna as linhas comuns distintas entre as instruções. Portanto, se existir um registro em uma consulta e não na outra, ele será omitido dos resultados do INTERSECT.
Os resultados são mostrados pela parte sombreada na figura acima
SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;
Esta consulta retornará o nome comum da cidade de “Cust_data” e “Supp_data”
Diferença entre Interseção e Junção
1) O operador INTERSECT é usado para recuperar os registros comuns de ambas as cláusulas select do Operador Intersect Considerando que Join é usado para recuperar dados de duas tabelas com base na condição especificada
2) INTERSECT faz a comparação para todas as colunas enquanto INNER JOIN apenas as colunas especificadas.
3) O operador INTERSECT retorna quase os mesmos resultados que a cláusula INNER JOIN muitas vezes.
Oracle Menos
O operador Sql menos é usado para combinar os conjuntos de resultados de duas ou mais instruções SELECT. Ele combina a instrução SELECT e retorna as linhas selecionadas da primeira instrução select e, em seguida, remove do conjunto de dados todas as linhas recuperadas da segunda instrução select
Os resultados são mostrados pela parte sombreada na figura acima
SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;
Esta consulta retornará o nome da cidade de "Cust_data" menos o nome da cidade "Supp_data"
Aqui, como todos os dados retornados da instrução select são os mesmos, ele não gerou nenhuma linha.
Vamos inserir uma linha diferente em cust_data e ver os resultados
Agora vamos ver se fazemos menos de cust_data de supp_data
SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;
Não temos operador negativo em muitos RDBMS como sql server, mysql. Lá usamos exceto no lugar de menos e tem a mesma funcionalidade que menos
Todos esses operadores sql set são válidos para RDBMS usados no Market, como Oracle, mysql, sql server, Postgres, Teradata
Artigos relacionados
excluir registros duplicados no oracle:dicas e maneiras de como excluir linhas duplicadas da tabela oracle. Várias opções são fornecidas para excluir as linhas duplicadas sem problemas
Tutoriais do Oracle Sql:Contém a lista de todos os artigos úteis do Oracle sql. Explore-os para aprender sobre o Oracle Sql, mesmo se você souber Oracle Sql
Perguntas da entrevista Oracle:Confira esta página para obter as 49 principais perguntas e respostas da entrevista Oracle:Noções básicas, Oracle SQL para ajudá-lo em entrevistas.Material adicional também é fornecido
cláusula where no oracle:Restringindo o conjunto de dados, cláusula where, cláusula what is where na instrução sql, funções
single row do operador de comparação no Oracle:Confira isto para descobrir Funções de linha única no sql, Oracle data funções,funções numéricas em sql,função de caractere em sql