Ensaio
- informações relacionadas entre si; ≠ s tabelas
- campos em comum.
JOIN
SELECT FROM JOIN ON Tabela1. FK = Tabela2. PK
SELECT < campos> FROM JOIN USING
INNER JOIN (padrão) -> produto cartesiano
-Combina todas as linhas de Tabela1 com todo as linhas de Tabela2.
SELECT *FROM Pessoas JOIN veículos ON Pessoas.cpf = veículos
Nome
CPF
Estado
CPF
Veiculo
Placa
Jose
111
Pr
111
Carro
KK 0002
Maria
222
Sp
Null
Moto
QQ 0001
Jose
111
Pr
111
Carro
KK 0002
Maria
222
Sp
Null
Moto
QQ 0001
Jose
111
Pr
111
Carro
KK 0002
Maria
222
Sp
Null
Moto
QQ 0001 Resultado
Jose
111
Pr
111
Carro
KK 0002
EQUI JOIN
-chaves devem obrigatoriamente ter o mesmo nome. Chaves = COLUNAS RELACIONADAS
SELECT*FROM pessoas JOIN veículos USING (cpf)
-não repete a coluna comum, ex: ‘CPF’
Resultado
Jose
111
Pr
111
Carro
KK 0002
NON EQUI JOIN
-Relacionamentos sem campos em comum.
Nome
CPF
Estado
Salario
Jose
111
Pr
1500
Maria
222
Sp
2500
Cargo
Inicio
Fim
Analista Junior
1000
2000
Analista Pleno
2001
3000
SELECT p.nome, p.salario, s.cargo FROM pessoas p INNER JOIN salario s ON p.salario BETWEEN s.inicio AND s.fim
OUTER JOIN/ LEFT OUTER JOIN
Esquerda.
Tabela à esquerda não satisfaz as condições das tabelas união.
SELECT * FROM pessoas AS LEFT JOIN veiculos ON pessoas.cpf = veculos.cpf
Tabela pessoas
Tabela veiculos
Nome
CPF
Estados
CPF
Veiculo
Placa
Fernando
111
DF
111
Carro
OKP 2014
Guilherme
222
GO
Null
Moto
PKO 2013 Nome
CPF
Estados
CPF
Veiculo Placa
Guilherme
222
GO
Null
Null
Null
RIGTH JOIN
SELECT*FROM pessoas AS RIGTH JOIN veiculos ON pessoas.cpf = veiculos.cpf
Nome
CPF
Estados
CPF
Veiculo Placa
Null
Null
Null
Null
Null
Null
FULL OUTER JOIN
Combine LEFT JOIN e RIGTH JOIN
SELECT*FROM pessoas AS FULL JOIN veiculos ON pessoas.cpf = veiculos.cpf
SELF JOIN
união