nada
SQL Completo
Relacionamentos e Visões
Relacionamentos no SQL
•
•
•
•
•
•
•
Informações relacionadas entre si
Em geral entre diferentes tabelas
Geralmente possuem campos em comum
Parâmetro JOIN e suas variações
SELECT ... FROM T1 JOIN T2 ON T1.FK = T2.PK
SELECT ... FROM T1 JOIN T2 USING Chave
Compatibilidade com bancos de dados
Inner join
• Join padrão
• Produto cartesiano entre as tabelas
• Combina todas as linhas da primeira tabela com todas as linhas da segunda, que satisfação as condições das chaves
1
13/9/2010
Inner join
• SELECT * FROM PESSOAS JOIN VEICULOS ON
PESSOAS.CPF = VEICULOS.CPF
Tabela PESSOAS
Tabela VEICULOS
NOME
CPF
ESTADO
CPF
Fernando
111.111.111-11
PR
111.111.111-11
Carro
SB-0001
Guilherme
222.222.222-22
SP
NULL
VEICULO
Carro
PLACA
SB-0002
Tabela RESULTADO
NOME
CPF
ESTADO
CPF
VEICULO
PLACA
Fernando
111.111.111-11
PR
111.111.111-11
Carro
SB-0001
Equi join
• Similar ao Inner join
• Chaves de mesmo nome entre as tabelas
• SELECT * FROM PESSOAS JOIN VEICULOS
USING (CPF)
Tabela VEICULOS
Tabela PESSOAS
NOME
CPF
ESTADO
CPF
Fernando
111.111.111-11
PR
111.111.111-11
Carro
SB-0001
Guilherme
222.222.222-22
SP
NULL
VEICULO
Carro
PLACA
SB-0002
Tabela RESULTADO
NOME
CPF
ESTADO
VEICULO
PLACA
Fernando
111.111.111-11
PR
Carro
SB-0001
Non equi join
• Relacionamento sem um campo em comum
• SELECT P.NOME, P.SALARIO, S.FAIXA FROM
PESSOAS P INNER JOIN SALARIOS S ON
P.SALARIO BETWEEN S.INICIO AND S.FIM
Tabela PESSOAS
Tabela SALARIOS
NOME
CPF
ESTADO
SALARIO
FAIXA
INICIO
FIM
Fernando
111.111.111-11
PR
1500
Analista Júnior
1000
2000
Guilherme
222.222.222-22
SP
2500
Analista Pleno
2001
3000
Tabela RESULTADO
NOME
SALARIO
FAIXA
Fernando
1500