Enviar este artigo por e-mail para alguém
Banco de Dados: Junção (Join)
Como já disse antes, vou começar a colocar as aulas da faculdade aqui para poder aprender mais e ajudar outras pessoas que estão com dúvida ou querem aprender a matéria. Começarei postando um pouco do que foi passado na primeira aula de Banco de Dados II. Praticamente o professor ficou a aula toda falando sobre como serão avaliadas as provas, como serão as aulas e todo aquele bla bla bla que nós alunos já conhecemos muito bem. Depois ele começou a ensinar como fazer o join.
Vou tentar passar aqui um pouco do que entendi da matéria. Peço aos leitores que tiverem bom conhecimento para me corrigirem caso eu erre em alguma coisa. Nunca dei uma aula dessa forma. Vamos ver o que vai virar ![]()
Produto Cartesiano
Na matemática, dados dois conjuntos X e Y, o produto cartesiano dos dois conjuntos é o conjunto de todos os pares ordenados cujo primeiro elemento pertence a X e o segundo a Y.
Exemplo: se eu tenho 4 elementos no conjunto X e 3 no conjunto Y, então o produto cartesiano desses dois conjuntos será um conjunto de 12. Resumindo, é praticamente a multiplicação do X com o Y, ou seja: 4 * 3. Vou dar uma demonstração abaixo:
Temos o conjunto X e o conjunto Y:
X = {A, B, C, D}
Y = {1, 2, 3}
O produto cartesiano desses dois conjuntos será o seguinte conjunto:
X * Y = {(A, 1), (A, 2), (A, 3), (B, 1), (B, 2), (B, 3), (C, 1), (C, 2), (C, 3), (D, 1), (D, 2), (D, 3)}
Agora você me pergunta: “Terrinha, por que está explicando toda essa merda chata ai?” Porque produto cartesiano porque tem um pouco a ver com SQL. “Como assim Terrinhaaaa?” Simples, vamos imaginar que temos duas tabelas, uma chamada empregados e outra chamada trampos (não estou me sentindo muito criativo para dar nomes em tabelas -.-). Se consultarmos essas duas tabelas sem o Join, teremos o produto cartesiano das duas. Entendeu meu querido?
Referência: Wikipedia
Junção (Join)
Finalmente chegamos na parte em que iremos falar da junção, então vamos direto ao assunto:
Vejamos o diagrama abaixo:

Temos essas duas tabelas: empregados e trampos. Vamos imaginar que a tabela empregados e a tabela trampos já estão certinhas e com os dados inseridos. Vamos começar dando um select na tabela empregados para vermos como ela está:
select * from empregados;

Na foto acima você pode ver o que já está guardado dentro da tabela empregados. Agora vamos dar uma olhada na tabela trampos:
select * from trampos;

Mas e se quisermos pegar os dados das duas tabelas para vermos, por exemplo, qual o trampo de cada pessoa da tabela empregados? Então, é claro, teriamos que fazer a consulta nas duas tabelas ao mesmo tempo. O problema é que sem um join fica tudo o maior rolo. Lembra o que falei no começo deste post sobre produto cartesiano? Então… Faça um teste você mesmo:
select * from empregos, trampos;
Lembrou melhor agora do produto cartesiano? Foi o que aconteceu aqui. Tinhamos 4 cadastros nas duas tabelas. Foi feito o produto cartesiano que retornou 16 resultados (pois 4 * 4 = 16. Se quiser pode contar ;))
O que fazemos para evitar isso? Simples, basta usarmos o join (finalmente heauheuehueahue). No exemplo abaixo vamos escolher certinho o que queremos que apareça na consulta, colocar os apelidos no from e finalmente fazer o join no where
select e.emp_codigo, e.emp_nome, t.trampo_codigo, t.trampo_nome
from empregados e, trampos t
where e.emp_codigo = t.emp_codigo;

O que foi feito? Simples! durante o select, foram escolhidas as informações que entrariam na tabela. As letras que estão depois do nome das tabelas (na linha do from…) são os apelidos. Essas mesmas letras que estão em outros lugares da tabela são partes do código que estão sendo chamadas pelos seus apelidos. Por exemplo, o e que vem antes do emp_codigo do e.emp_codigo, é uma referência à sua tabela. Ele mostra que ele faz parte da tabela empregados (já que demos o apelido de e para a tabela empregados quando escrevemos “empregados e” depois do from). Com isso você já pode fazer comparações de uma chave estrangeira de uma tabela com a chave primária de outra tabela que tem seu mesmo nome.No exemplo acima, foi feita a comparação do e.emp_codigo e do t.emp_codigo. Os dois emp_codigo são os mesmos, só mudam as tabelas. Isso é necessário para evitar que seja feito o produto cartesiano das tabelas. À partir do momento que os dois emp_codigo foram comparados, a tabela saiu certinha.
Agora é só fazer o que mais for necessário para suas consultas, como por exemplo, usar um AND para pesquisar por código, nome e o que mais quiser fazer.
Se quiserem ver mais coisas sobre banco de dados, recomendo que dêem uma passada no Viper Tech Blog. Conheci esse blog ontem e pelo que vi já fiquei impressionado. Tem muito artigo de qualidade lá (e não apenas de SQL, mas também sobre Linux, Ruby, Ajax, Java, Web, CSS, e até mesmo alguns sobre Ruindows).
Por enquanto é só. Espero que tenham gostado e entendido o que tentei explicar. Me desculpem se estiver meio confusa ou enrolada a forma como escrevi. Sinceramente nunca tentei dar aulas dessa forma e eu mesmo me perdi um pouco escrevendo isso. Essa foi a primeira aula. Vamos ver se nas próximas eu melhoro.
Quaisquer dúvidas ou sugestões, sintam-se à vontade para comentar
Technorati Tags: SQL, MySQL, Database, Banco de Dados, Junção, Join, select, consulta, aula, faculdade, tecnologia, tech, produto cartesiano, plano, produto, cartesiano, matemática, from, where, apelido, alias, nickname, search, query, language, linguagem, and, from, where, primary key, foreign key, multiplicação
Powered by ScribeFire.
Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)











Banco de Dados: Junção (Join)
“Vou começar a colocar as aulas da faculdade aqui para poder aprender mais e ajudar outras pessoas que estão com dúvida ou querem aprender a matéria.
Começarei postando um pouco do que foi passado na primeira aula de Banco de Dados II…”
Muito bom
(isso eu te digo de cadeira, fiz 6 meses de estágio pra concluir meu técnico em info).
E eu vou adiantar uma coisa que seu professor vai te ensinar, essa maneira é um jeito mais ou menos simples de fazer o join, que funciona, mas não é usado
Dei uma olhada no Viper, o post dele sobre Join fala exatamente sobre isso, então já estude fazer joins do outro jeito, porque é o que você vai precisar.
Bons estudos =).
[...] Contact the Webmaster Link to Article linux Banco de Dados: Junção (Join) » Posted at Terramel on Saturday, August 04, [...]
oloko, megócio phoda!
EU TE AMO MUITO, MY LOVE!
Mozi, isso não é muito difícil não??!!
Bjs :*************************************************************************
Só algumas considerações.
Pelo modo que você disse o produto cartesiano é o oposto de JOINs, quando na vardade também é um JOIN, conhecido como CROSS JOIN.
“select * from empregos, trampos;”
Equivale a:
“SELECT * FROM empregados
CROSS JOIN trampos”
A diferença é que no primeiro o JOIN é implícito e no outro explícito.
O que você chamou de “JOIN”, na verdade é apenas um deles, no caso INNER JOIN.
“select e.emp_codigo, e.emp_nome, t.trampo_codigo, t.trampo_nome
from empregados e, trampos t
where e.emp_codigo = t.emp_codigo;”
Equivale a:
“SELECT e.emp_codigo, e.emp_nome, t.trampo_codigo, t.trampo_nome
FROM empregados e
INNER JOIN trampos t ON e.emp_codigo = t.emp_codigo;”
Mas o assunto de JOINs é realmente uma longa história…
Abraços
Ed: Opa cara! Valeu pela dica
Vou dar uma pesquisada melhor e tentar aprender certinho isso qdo tiver mais tempo
Muito obrigado mesmo!
Fabi Bombinha: Minha linda gatinha, isso é facinho. Tirei 9 nisso no semestre passado… Mas como o professor quis dar uma de fodão que não passa ninguém, ele me deixou de DP >:( Mas tudo bem, agora vou tirar mais nota ainda e vou passar
Mozão, se você quiser eu te explico isso sábado
GATINHAAAA, TE AMO MAIS QUE TUDO NO UNIVERSO INTEIRO! Voxê é tudo pra mim ;*********************************************
Marcos Jordão: Opa cara, desculpa se eu falei besteira em algumas partes heheheehe! To apenas postando o que entendi da aula. Mas talvez eu tenha entendido errado alguma coisa (ou talvez o professor tenha falado merda huaehaeuheau). Muito obrigado mesmo pelas dicas e vou dar uma pesquisada melhor no que você falou porque é sempre bom saber de tudo ehehehehheeh
Obrigado! Abraços
Sim, sim, sim! Eu quero.
TE AMO MUITO MEU AMOR!
Bjs
Banco de dados é legal. Passei com uma nota boa quando fiz (o que não é comum! =P ). Empolguei e resolvi fazer Laboratório no semestre seguinte- matéria optativa. Maior arrependimento da minha vida acadêmica!
A área é legal, o problema comigo foi a professora, que passava trabalhos toda semana, que não são feitos com menos de três dias! Seria tranquilo passar, se eu cursasse APENAS a matéria dela..
Ah, gostei dos nomes! Eu tb fazia coisas do tipo =D
kkkkkkkkkkkkkk
Da onde vc tirou esse banco de dados com esses nomes de empregados ???
PopolonY2k
PlanetaMessenger.org
Fabi Bombinha: Mixuizinha linda! Então no fim de semana vou te explicar tudo isso e vamos também instalar o Ruby no seu computador
Ah, se você quiser tentar já instalar o ruby, quando conectar na internet apenas digite isso no terminal: sudo apt-get install ruby Acho que o irb já vem junto! Agora não lembro! TE AMO GATINHAAAAA ;**************************
vainalousachefe: Tem muito professor filho da puta ;/ Tem tanta matéria que eu ia bem e acabei desanimando por causa de professor cuzão ;/ A maioria das matérias da minha faculdade tão assim pra mim! ;( Mas com esse sistema de estudo por posts eu vou animar mais
Abraços
PopolonY2k: Esse banco existe! Invadi a máquina de uma certa empre$a de Redmond e achei esses dados! Abraços
Nossa legal. Você faz algum curso de computação?
Silveira Neto: Opa cara! Blz? Faço Informática com Ênfase em Gestão de Negócios na Fatec
Legal, FATEC de qual cidade?
Eu faço Processamento de Dados na FATEC Taquaritinga.
Marcos Jordão: Opa cara! Blz? Fatec da cidade de São José do Rio Preto. O curso é Informática com Ênfase em Gestão de Negócios
Prazer em conhecê-lo! 
[...] 2007 Esta é a segunda aula de banco de dados que posto. Praticamente é mais do mesmo. Depois da primeira aula que postei já tive umas 3 ou 4 aulas na faculdade, tudo com basicamente a mesma coisa. Resumi um pouco de [...]
[...] Banco de Dados: Junção (Join) [...]