aula 8 select & joi ns
TRANSCRIPT
![Page 1: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/1.jpg)
Base de Dados 1
![Page 2: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/2.jpg)
Produto Cartesiano
JOINs
ALIAS de Tabelas
UNION
INTERSECT
MINUS
Agenda
![Page 3: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/3.jpg)
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
![Page 4: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/4.jpg)
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
![Page 5: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/5.jpg)
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
![Page 6: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/6.jpg)
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
![Page 7: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/7.jpg)
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
![Page 8: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/8.jpg)
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;
FULL JOIN
![Page 9: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/9.jpg)
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
![Page 10: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/10.jpg)
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
![Page 11: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/11.jpg)
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
![Page 12: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/12.jpg)
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
![Page 13: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/13.jpg)
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
![Page 14: Aula 8 select & joi ns](https://reader033.vdocuments.pub/reader033/viewer/2022052307/556ab7dad8b42a89038b4fb9/html5/thumbnails/14.jpg)
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