quarta-feira, 28 de janeiro de 2009

Junções... Parte I


Mais uma da série: "colocando no blog pq sempre esqueço como faz..."

Hoje vamos falar sobre JUNÇÕES:
Elas são necessárias quando se pretende obter dados provenientes de mais de uma tabela em pesquisa SQL no banco de dados.

Existem vários tipos de junções que podem ser utilizadas para pesquisar e cada uma delas possue uma particularidade...vejamos:

Natural Join:
Quando usar?
Quando os atributos possuem os mesmos nomes nas tabelas.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc FROM emp NATURAL JOIN dept;

Inner Join (USING)
Quando usar?
Quando os atributos possuem os mesmos nomes nas tabelas e há uma condição de igualdade, neste caso o cd_depto ser o mesmo nas duas tabelas de pesquisa.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc
FROM emp INNER JOIN dept USING (cd_depto);

Inner Join (ON)
Quando usar?
Quando os atributos NÃO possuem os mesmos nomes nas tabelas.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc FROM emp INNER JOIN dept 
ON emp.cd_dept = dept.Kcd_depto;

Non-equijoin (BETWEEN)
Quando usar?
Pode ser usada quando não existe uma relação direta entre os atributos das tabelas.
Ex.:
SELECT nm_emp, categ_salarial.kcd_categ, emp.vl_sal
FROM emp, categ_salarial
WHERE emp.vl_salario BETWEEN categ_salarial.vl_min AND categ.salarial.vl_max;

Outer join (LEFT JOIN)
Quando usar?
Inclui no resultado todos os registros da tabela à esquerda mesma que não possuam relação com a tabela à direita.
Ex.:
SELECT categ_salarial.kcd_categ, emp.nm_emp
FROM categ_salarial LEFT OUTER JOIN emp
ON (categ_salarial.kcd_categ=empl.cd_categ);

Por hoje é só, continuo amanhã...
Não abusem, junções pode dar tonturas e sintomas do tipo...

2 comentários:

Juca disse...

Bahhh fui aprender a usar os Joins depos que sai do TSI e fui estagiar na UAB com o Róger como chefe...

Anônimo disse...

Bem ao pé da letra essa imagem.. a primeira vez que vi achei bem engraçado heheh.. pelo o que tenho acompanhado pelos seus posts, vc gosta de BD's nao é?
Ahh blogroll updated!! ;)

[]s