• Nenhum resultado encontrado

AULA 1

N/A
N/A
Protected

Academic year: 2022

Share "AULA 1"

Copied!
20
0
0

Texto

(1)

AULA 1

Prof. (a): Danilo Monteiro Ribeiro

UNINABUCO - PAULISTA – PE 2018.1

Aula Junções

Banco de Dados Avançado

(2)

Objetivos

2

• Fazer o download:

• http://monteiro.inf.br/

• ->Banco de Dados Avançado

• ->scriptaulajoin

(3)

O que veremos hoje...

nA gente usava subselect para realizar consultadas em mais de uma tabela

nJunções (Join)

pMais rápido

pMenos processamento pSubselect (transformados)

(4)

SQL – Junções

p Comando Select (contextualização)

n Junções em mais de uma tabela Regras básicas para fazer um junção:

p 1) As tabelas envolvidas devem estar listadas após a cláusula FROM;

p 2) As colunas utilizadas no SELECT sejam precedidas do nome ou do apelido da tabela; e, por fim:

p 3) As tabelas envolvidas na junção estejam ligadas pelo(s) campo(s) em comum na cláusula WHERE

p Sintaxe:

pSELECT t1.campo1, t1.campo2, t2.campo1 FROM tabela1 t1 TIPO DE JOIN tabela2 t2 ON t1.id = t2.id;

(5)

id nome idade

1 danilo 28

2 jose 24

3 felipe 19

4 henrique 14

5

id Id_client numero

1 1 9999999

2 2 8888888

3 3 7777777

4 3 555555

5 6666666

pcliente(id, nome,idade)

pfones_telefone(id, id_client, numero)

p cliente.id = fones_cliente.id_client

(6)

p Comando Select (exemplos)

SELECT c.nome, c.idade, fc.numero

FROM cliente c CROSS JOIN fones_cliente fc ;

6

O que esse código faz?

(7)

O que o cross join faz?

7

danilo jose

999999 888888 77777 felipe

Henrique

6666 5555

(8)

SQL – Junções

p Comando Select (exemplos)

SELECT c.nome, c.idade, fc.numero

FROM cliente c INNER JOIN fones_cliente fc ON c.id = fc.id_client ;

O que esse código faz?

(9)

O que o Inner join faz?

9

danilo jose

999999 888888 77777 Felipe

5555

(10)

10

p Comando Select (exemplos)

SELECT c.nome, c.idade, fc.numero

FROM cliente c LEFT JOIN fones_cliente fc ON c.id = fc.id_client ;

O que esse código faz?

(11)

O que o cross join faz?

11

danilo jose

999999 888888 77777

Henrique Felipe

5555

(12)

12

p Comando Select (exemplos)

SELECT c.nome, c.idade, fc.numero

FROM cliente c RIGHT JOIN fones_cliente fc ON c.id = fc.id_client ;

O que esse código faz?

(13)

O que o cross join faz?

13

danilo jose

999999 888888 77777 Felipe

66666 5555

(14)

• SELECT *FROM cliente c full JOIN

fones_cliente fc ON c.id = fc.id_client ;

• ???

14

(15)

• Full join

15

(16)

• Um uso comum para uma subconsulta pode ser calcular um valor para uso em uma

consulta. Por exemplo, podemos usar uma

subconsulta para nos ajudar a obter que todos os produtos que tenham um preço de produto maior que a média.

16

https://www.essentialsql.com/what-is-the-difference-between-a-join- and-subquery/

SELECT ProductID, Name, ListPrice, (SELECT AVG(ListPrice) FROM Production.Product) AS AvgListPrice FROM Production.Product

WHERE ListPrice > (SELECT AVG(ListPrice) FROM Production.Product) ;

(17)

• objetivo principal de uma junção é combinar linhas de uma ou mais tabelas com base em uma condição de correspondência. Por

exemplo, podemos usar nomes e modelos de produtos de exibição de associação.

Select Product.Name, ProductModel.Name as ModelName FROM Production.product INNER JOIN

Production.ProductModel ON Product.ProductModelID = ProductModel.ProductModelID

https://www.essentialsql.com/what-is-the-difference-between-a-join-and- 17

subquery/

(18)

• Na maioria dos casos, as junções são uma solução melhor que as subconsultas - o Postgres até mesmo “reescreve”

internamente uma subconsulta, criando uma junção, sempre que possível, mas isso,

obviamente, aumenta o tempo necessário para criar o plano de consulta.

• https://robots.thoughtbot.com/postgresql-

performance-considerations

18

(19)

• Preferir JUNÇÕES INNER

• Sempre prefira fazer uma junção interna em vez de uma junção externa esquerda. Um

monte de pesquisa e código foi usado para otimizar as junções externas no Postgres ao longo dos anos.

• https://robots.thoughtbot.com/postgresql- performance-considerations

19

(20)

• Faça um desenho representativo (como nos exemplos anteriores) das consultas a seguir?

• 

select c.nome, c.idade, fc.numero from cliente c LEFT JOIN fones_cliente fc ON c.id = fc.id_client where

fc.id_client is null;

• select c.nome, c.idade, fc.numero from cliente c RIGHT JOIN fones_cliente fc ON c.id = fc.id_client where c.id is null;

20

Referências

Documentos relacionados

Diante da conjuntura apresentada e da escassez de estudos que venham colaborar com esta discussão no âmbito dos cursos de graduação em Fisioterapia, o presente artigo

157, §4º da Lei nº 6.404/76, nos termos da Instrução CVM nº 358/02, e em complemento ao Fato Relevante divulgado em 08 de fevereiro de 2018, informa aos seus

Para o desenvolvimento deste trabalho os stakeholder são compreendidos como qualquer ator que apresente uma relação, interesses ou expectativas sobre a organização

Para isso, enfatiza-se a importância da distinção schopenhaueriana entre ser subjetivo e objetivo e consideração subjetiva e objetiva, bem como relaciona-se a significação

Fotofagia, Galeria de Arte da Universidade Federal de Niterói, Brazil Fotofagia, Galeria de Fotografia da Funarte, Rio de Janeiro, Brazil. Black Maria (photographic installation),

A terapia cognitivo-comportamental (TCC) oferece um modelo eficaz para o manejo dos problemas conjugais e melhoria da satisfação dos parceiros com seus relacionamentos. O

• Se o frigorífico ficar vazio durante longos períodos de tempo, este deve ser desligado, descongelado, limpo e seco, sendo necessário deixar a porta aberta para evitar o

Por outro lado, como a densidade das fibras (sisal e de bananeira) ´e maior que a densidade das part´ıculas (Pinus spp), a raz˜ao de compacta¸c˜ao diminui com o acr´escimo das