Base de Dados 1
Produto Cartesiano
JOINs
ALIAS de Tabelas
UNION
INTERSECT
MINUS
Agenda
O produto cartesiano é a associação N:N entre duas tabelas;
Para juntar duas tabelas bastará fazer:
SELECT *
FROM pessoa, localidade
O resultado será o produto cartesiano dos dois conjuntos.
O produto cartesiano entre as tabelas pessoa e localidade associa a cada linha da tabela pessoa o conjunto das linhas da tabela localidade.
Produto Cartesiano
O Conceito de JOIN (ligação) entre tabelas permite extrair, num único SELECT, informação contida em diferentes tabelas.
JOIN utilizando WHERE
INNERJOIN
LEFTJOIN
RIGHTJOIN
JOIN
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
or:
SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;
INNER JOIN
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;
ou
SELECT column_name(s) FROM table1 RIGHT OUTER JOIN table2 ON table1.column_name=table2.column_name;
RIGHT JOIN
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
or:
SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name;
LEFT JOIN
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;
FULL JOIN
A forma mais utilizada para se juntar tabelas é utilizando apenas a clausula WHERE. No entanto é preciso ter cuidado, colocando todas as condições necessárias para obter o resultado correcto. SELECT * FROM pessoa, localidade WHERE códigoLocal = código
Juntado Tabelas Com Clausula WHERE
Se os campos de seleção ou junção de duas tabelas tiverem o mesmo nome, então para eliminar quaisquer ambiguidades, cada um dos campos deve ser precedido do nome da tabela, seguido de um ponto.
O nome de uma tabela pode ser reduzido ou alterado num SELECT, através da utilização de um ALIAS que deve ser colocado à frente da tabela e que passará a ser uma outra forma de identificar a tabela.
ALIAS de tabelas
Existe a possibilidade de “Misturar” vários selects e no final ter apenas um.
Para isso utiliza-se os seguintes operadores da teoria de conjuntos
UNION
INTERSECT
MINUS
Misturando SELECT
Permite fazer a reunião entre SELECTs.
O número de campos a selecionar em cada um dos comandos SELECT tem de ser igual.
Nota: Numa UNION, o nome das colunas apresentado no resultado é o nome das colunas selecionadas na primeira instrução SELECT.
Cada SELECT pode conter a sua própria cláusula WHERE. No entanto, só poderá existir uma única cláusula ORDER BY no último SELECT, sendo a ordenação aplicada a todo o resultado.
UNION
Base de Dados 1
Permite fazer a Intersecção entre SELECTs
O Operador INTERSECT permite juntar o conteúdo de dois comandos SELECT, apresentando apenas as linhas que resultam de ambos os comandos.
Nota: O operador INTERSECT só é suportado pelo ORACLE.
INTERSECT
Permite Subtrair dois SELECTs
Devolve os registos que resultam do primeiro SELECT e que não aparecem no segundo
Nota: O operador MINUS só é suportado pelo ORACLE.
MINUS