LINGUAGEM DE MANIPULAÇÃO DE DADOS CONSULTAS AVANÇADAS 1 - JUNÇÃO Ua junção perite obter dados de ais de ua tabela e ua deteriada consulta. A junção pode ser interna ou externa. 1.1 Junção interna E ua junção interna te coo resultado ua relação onde soente os dados que atenda a cláusula da junção deinida pelo operador ON. Este operador deterina quais colunas serão utilizadas para deinir a correspondencia entre as tabelas. A junção interna, tabé reerenciada co INNER JOIN apresenta a seguinte sintaxe: SELECT tabela 1.coluna i,, tabela 2.coluna n FROM tabela 1 INNER JOIN tabela 2 ON tabela 1.coluna j, = tabela 2.coluna k [WHERE condição(ões)] É possível oitir o tero INNER: SELECT tabela 1.coluna i,, tabela 2.coluna n FROM tabela 1 JOIN tabela 2 ON tabela 1.coluna j, = tabela 2.coluna k [WHERE condição(ões)] 1.2 Junção Externa Ua junção externa não há necessidade de haver a correspondência, dos valores dos capos, que são expressos na cláusula ON. Existe três tipos de junção externa: a direita a esquerda copleta 1.2.1 Junção Externa a Esquerda Neste tipo de junção os eleentos da tabela da esquerda sepre são exibidos tenha ou não correspondente select tabela 1.coluna i,, tabela 2.coluna n ro tab 1 LEFT OUTER JOIN tab 2 on tab 1.capo i = tab 2.capo j 1.2.2 Junção Externa a Direita Neste tipo de junção os eleentos da tabela da direita sepre são exibidos tenha ou não correspondente select.tabela 1.coluna i,, tabela 2.coluna n
ro tab 1 RIGHT OUTER JOIN tab 2 on tab 1.capo i = tab 2.capo j 1.2.3Junção Externa Copleta Neste tipo de junção as duas tabelas aparece no resultado tenha ou não correspondente select.tabela 1.coluna i,, tabela 2.coluna n ro tab 1 FULL OUTER JOIN tab 2 on tab 1.capo i = tab 2.capo j EXEMPLOS: Considere o esquea de banco de dados: atleta_treinador(cod, noe,sexo,cod_equipe) atleta_coordenador(cod, noe,sexo) equipe(cod,noe) cidades_jogos_2006( cod, noe) cidades_jogos_2007(cod, noe) OBS: Ne todo atleta treinador está alocado a equipe. Considere ainda a instância de banco de dados: atleta_treinador 1 M 1 2 M 3 3 Eva F 4 4 Ivo M 5 beth cidades_jogos_2007 1 Chui 2 Kiwi atleta_treinador 1 hila F 2 João M 3 Ea F cidades_jogos_2006 1 Abra 2 Zuru 3 Chui equipe 1 azul 2 preta 3 aarela 4 rosa 5 branca 6 verde 7 lilas Selecionar todas o noe de todas as equipes e o noe de seus treinadores select eq.noe, tr.noe ro equipe eq JOIN atleta_treinador tr eq.noe azul aarela tr.noe
rosa Selecionar todas o noe de todas as equipes, que tenha ou não treinador, e o noe de seus treinadores select eq.noe, tr.noe ro equipe eq LEFT OUTER JOIN atleta_treinador tr eq.noe azul aarela rosa preta - Branca - Verde - lilas - ou tr.noe Eva select eq.noe, tr.noe ro atleta_treinador tr RIGTH OUTER JOIN equipe eq Selecionar o noe de todas os treinadores, co ou se equipe, e os noes de todas as equipes, co ou se treinadores. tr.noe ivo - beth - select eq.noe, tr.noe ro atleta_treinador tr FULL OUTER JOIN equipe eq eq.noe Azul Aarela Rosa 2 UNIÃO DE TABELAS Para unir tabelas é necessário que os noes e tipos das colunas correspondente seja iguais. A união entre duas tabelas A e B te coo resultado ua nova tabela co todos os valores das tabelas A e B.
EXEMPLO: select coluna i,, coluna n ro tab 1 UNION select... ro tab 1 Selecione o noe e sexo de todos os treinadores e coordenadores select NOME, SEXO. ro atleta_treinador UNION select NOME, SEXO. ro atleta_coordenador noe ivo beth hila joão Ea sexo 3 INTERSECÃO DE TABELA S A interseção de duas tabelas A e B é o que te na tabela A e na tabela B são os valores couns as duas tabelas. Para isto é necessário que que os noes e tipos das colunas correspondente seja iguais. select.coluna i,, coluna n. ro tab 1 INTERSECT select.a, B... ro tab 1 EXEMPLO: Selecionar todas as cidades onde tenha ocorrido jogos soente e 2006 e 2007 select NOME ro cidades_jogos_2006
noe Chui INTERSECT select NOME ro cidades_jogos_2007