No SQL, um Junte-se é usado para comparar e combinar - unir-se literalmente - e retornar linhas específicas de dados de duas ou mais tabelas em um banco de dados. A junção interna localiza e retorna dados correspondentes das tabelas, enquanto um junção externa localiza e retorna dados correspondentes e alguns dados diferentes das tabelas.
Uma junção interna concentra-se na semelhança entre duas tabelas. Ao usar uma junção interna, deve haver pelo menos alguns dados correspondentes entre duas (ou mais) tabelas que estão sendo comparadas. Uma junção interna procura nas tabelas dados correspondentes ou sobrepostos. Ao encontrá-lo, a junção interna combina e retorna as informações em uma nova tabela.
Vamos considerar um cenário comum de duas tabelas: preços e quantidades do produto. As informações comuns nas duas tabelas são o nome do produto, portanto essa é a coluna lógica para ingressar nas tabelas em. Existem alguns produtos comuns nas duas tabelas; outras são exclusivas de uma das tabelas e não têm correspondência na outra tabela.
Uma junção interna em Produtos retorna informações sobre apenas os produtos comuns nas duas tabelas.
Uma junção externa retorna um conjunto de registros (ou linhas) que incluem o que uma junção interna retornaria, mas também inclui outras linhas para as quais nenhuma correspondência correspondente é encontrada na outra tabela.
Existem três tipos de junções externas:
Cada uma dessas junções externas se refere à parte dos dados que estão sendo comparados, combinados e retornados. Às vezes, os nulos serão produzidos nesse processo, pois alguns dados são compartilhados enquanto outros não são.
Uma junção externa esquerda retornará todos os dados da Tabela 1 e todos os dados compartilhados (portanto, a parte interna do exemplo do diagrama de Venn), mas apenas os dados correspondentes da Tabela 2, que é a junção direita.
No nosso banco de dados de exemplo, existem dois produtos - laranjas e tomates - à esquerda (Preços tabela) que não possuem uma entrada correspondente na 'direita' (tabela Quantidades). Em uma junção esquerda, essas linhas são incluídas no conjunto de resultados com um NULL na coluna Quantidade. As outras linhas no resultado são iguais à junção interna.
Uma junção externa direita retorna os dados da Tabela 2 e todos os dados compartilhados, mas apenas os dados correspondentes da Tabela 1, que é a junção esquerda.
Semelhante ao exemplo de junção esquerda, a saída de uma junção externa direita inclui todas as linhas da junção interna e duas linhas - brócolis e abóbora - da 'direita' (Quantidades tabela) que não possuem entradas correspondentes à esquerda.
Uma junção externa completa, ou junção completa, que é não suportado pelo popular sistema de gerenciamento de banco de dados MySQL, combina e retorna todos dados de duas ou mais tabelas, independentemente de haver informações compartilhadas. Pense em uma junção completa simplesmente duplicando todas as informações especificadas, mas em uma tabela, em vez de várias tabelas. Onde faltam dados correspondentes, nulos serão produzidos.
Estes são apenas os princípios básicos, mas muitas coisas podem ser feitas com junções. Existem até junções que podem excluir outras junções!
Este vídeo explica a diferença entre vários tipos de junções. É planejado para começar no ponto em que a discussão sobre junções começa.