You are on page 1of 12

Comando Union

Centro Universitrio Plnio Leite

Banco de Dados II Professor Marcelo Aras

UNION
uma operao de conjuntos O comando SELECT retorna um conjunto de linhas, e permite tambm
operaes com a noo matemtica de conjuntos.

Por exemplo, o resultado de dois comandos SELECT pode ser


combinados com o operador UNION.

UNION

As relaes resultantes de um UNION so de fato conjuntos de


tuplas; tuplas duplicadas so eliminadas do resultado.

O comando UNION se aplica apenas a relaes unio compatveis;


as duas relaes devem ter os mesmos atributos, que precisam
aparecer na mesma ordem.

UNION

O que uma unio compatvel? Os dois comandos podem at mesmo trazer dados de tabelas
diferentes, desde que com o mesmo NMERO de colunas, e TIPOS de dados compatveis para cada coluna correspondente.

UNION - Exemplo de Uso

Tabela autor
(id_autor, cpf, nome, cidade, estado, telefone)

Tabela editora
(id_editora, cnpj, nome, cidade, estado, telefone)

Para sabermos o conjunto de todas as cidades onde


existem autores ou editoras, pode ser feita uma unio dos dois conjuntos.

UNION - Exemplo de Uso

Tabela autor
(id_autor, cpf, nome, cidade, estado, telefone)

Tabela editora
(id_editora, cnpj, nome, cidade, estado, telefone)

Exemplo:
SELECT cidade, estado FROM autor UNION SELECT cidade, estado FROM EDITORA

UNION - Exemplo de Uso


Na unio de dois conjuntos, os elementos repetidos so eliminados,
como quando se usa o comando DISTINCT

Se a inteno no for eliminar resultados duplicados deve ser utilizado


o UNION ALL

Ex:
SELECT cidade, estado FROM autor UNION ALL SELECT cidade, estado FROM EDITORA

UNION - Exemplo de Uso


O resultado de uma unio aparece em ordem crescente, pois o SQL
Server ordena os resultados antes de eliminar repeties

Para ordenar de outra maneira utilizar o ORDER BY aps o fim do


ltimo comando SELECT

Ex:
SELECT cidade, estado FROM autor UNION SELECT cidade, estado FROM EDITORA ORDER BY estado DESC

INTERSECT
tambm uma operao de conjuntos

Enquanto o UNION funciona essencialmente como um comando OR


Isto :
OR: O valor aparece no resultado final se ele aparece na primeira ou segunda instruo

entre dois conjuntos, o INTERSECT funciona como um comando AND

AND: O valor aparece no resultado final somente se ele aparece em ambas as instrues

Exemplo
Considere as tabelas abaixo

Table VENDAS_LOJA
LOCAL_LOJA So Gonalo Niteri Rio de Janeiro Petrpolis VALOR_VENDA 1500 2000 3000 1800 DATA_VENDA 2011-04-11 2011-04-14 2011-04-16 2011-04-16

Tabela VENDAS_INTERNET
VALOR_VENDA 800 700 600 DATA_VENDA 2011-04-14 2011-04-17 2011-04-19

Exemplo INTERSECT
Quero descobrir todas as datas em que ocorreram vendas na loja e
atravs da Internet.
SELECT data_venda FROM VENDAS_LOJA INTERSECT SELECT data_venda FROM VENDAS_INTERNET

O resultado ser:
DATA_VENDA 2011-04-14

Exemplo UNION
Agora quero simplesmente listar todas as datas em que ocorreu alguma
venda, seja pela internet ou atravs da loja fsica.
SELECT data_venda FROM VENDAS_LOJA UNION SELECT data_venda FROM VENDAS_INTERNET

O resultado ser:
DATA_VENDA
2011-04-11 2011-04-14 2011-04-16 2011-04-17

2011-04-19

You might also like