Tipos de junções do MySQL | MySQL Joins [com sintaxe]

Publicados: 2020-12-09

Índice

Introdução

MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto apoiado pela Oracle. MySQL é composto de duas palavras - "My", o nome da filha do co-fundador Michael Widenius, e "SQL", a abreviação de Structured Query Language.

A palavra Relacional em RDBMS é o fundamento sobre o qual JOINS no MySQL funcionam. Pode haver muitos tipos e números de tabelas em qualquer Banco de Dados. JOINS, como o nome sugere, vincula tabelas usando colunas comuns. Um exemplo básico é que a Tabela 1 tem detalhes do funcionário e a Tabela 2 tem detalhes do projeto.

Se tivermos que verificar os projetos em que um funcionário está envolvido, podemos juntar as tabelas no nome do funcionário ou id do funcionário, portanto, juntamos as tabelas e a nova tabela virtual (pode ser salva) pode ser acessada com todas as informações necessárias .

Recursos

  • MySQL é Open-Source e um RDBMS adequado para acessar e gerenciar registros das tabelas.
  • Ele suporta a linguagem de codificação SQL, que é muito comum no campo de gerenciamento de banco de dados.
  • MySQL é básico e fácil de usar. Tem uma quantidade esmagadora de documentação se alguém estiver preso em um problema específico.
  • O MySQL tem uma camada de segurança muito forte. As senhas são criptografadas, portanto, os dados confidenciais estão protegidos contra invasores.
  • MySQL é escalável, porque suporta multi-threading. O Multi-Threading é responsável pela execução rápida de consultas e manipulação de dados, mesmo que a tabela seja muito grande.
  • MySQL tem arquitetura Cliente/Servidor. Há um servidor de banco de dados e muitos clientes (programas aplicativos) conectados ao servidor.

Tipos de Junções

Junção interna

A junção interna é o tipo de junção padrão no MySQL. Ele une e retorna registros correspondentes das duas tabelas. Ele comparará cada linha de uma tabela com outra e verificará a condição de junção. Se a condição for atendida, uma nova linha será criada com as colunas de ambas as tabelas e essa nova linha será incluída na saída.

Fragmento de código:

SELECIONE t1 . emp_id , t1.emp_name,t2.project_name

DE funcionário como t1

Projeto INNER JOIN como t2

ON t1.project_id = t2 . ID_do_projeto

Nesta consulta, existem duas tabelas. A primeira tabela consiste em detalhes dos funcionários e a segunda inclui todos os projetos atualmente em andamento. Após executar a consulta acima, o MySQL retornará todos os funcionários com os respectivos detalhes do projeto. Aqui, a coluna project_id é uma chave estrangeira na tabela de funcionários e uma chave primária na tabela de projetos. Funcionários sem qualquer project_id ou project_id sem nenhum funcionário não serão devolvidos.

Associação à esquerda

Left join, junta e retorna os registros correspondentes das duas tabelas e os registros não correspondentes da primeira tabela. A junção esquerda essencialmente retorna a saída da junção interna + registros não correspondentes da primeira tabela. Essas linhas sem correspondência também terão as colunas da tabela 2, mas o valor nessas colunas será nulo, pois não há dados correspondentes para elas.

Fragmento de código:

SELECIONE t1 . emp_id , t1.emp_name,t2.project_name

DE funcionário como t1

LEFT JOIN projeto como t2

ON t1.project_id = t2 . ID_do_projeto

Nesta consulta, existem duas tabelas. A primeira tabela consiste em detalhes dos funcionários e a segunda inclui todos os projetos atualmente em andamento. Depois de executar a consulta acima, o MySQL retornará todos os funcionários com seus respectivos detalhes do projeto e também os detalhes do funcionário sem project_id atribuído. Aqui, a coluna project_id é uma chave estrangeira na tabela de funcionários e uma chave primária na tabela de projetos.

Ler: Renomear o nome da coluna no SQL

União direita

A junção direita é muito semelhante à junção esquerda, só que agora os registros não correspondentes da segunda tabela serão incluídos na saída e apenas os registros correspondentes da primeira tabela.

Fragmento de código:

SELECIONE t1 . emp_id , t1.emp_name,t2.project_name

DE funcionário como t1

RIGHT JOIN projeto como t2

ON t1.project_id = t2 . ID_do_projeto

Após executar a consulta acima, o MySQL retornará todos os funcionários com seus respectivos detalhes do projeto e também os detalhes dos projetos que não possuem funcionários correspondentes. As colunas de detalhes do funcionário serão NULL nesses casos.

Junção Completa

Como o nome sugere, a junção completa retorna todos os registros correspondentes e não correspondentes. Se o MySQL for capaz de encontrar linhas correspondentes na coluna desejada, esses registros serão correspondidos. O restante das linhas terá valores NULL.

Fragmento de código:

SELECIONAR *

DE funcionário como t1

Projeto FULL OUTER JOIN como t2

ON t1.project_id = t2 . ID_do_projeto

Depois de executar a consulta acima, o MySQL retornará todos os funcionários com seus respectivos detalhes do projeto, também os detalhes dos funcionários sem projetos e os projetos sem funcionários correspondentes. Certas colunas terão valores NULL de acordo.

União cruzada

Como o nome sugere, a junção cruzada unirá cada linha da tabela 1 a cada linha da tabela 2. Independentemente das colunas correspondentes. Portanto, se houver 5 registros em cada tabela, a saída terá 25 linhas, pois cada linha corresponde a outra linha.

Fragmento de código:

SELECIONAR *

DE funcionário como t1

Projeto CROSS JOIN como t2

Após executar a consulta acima, o MySQL retornará todos os funcionários com todos os detalhes do projeto. Embora não faça muito sentido visualizar esta informação, mas Cross Joins são importantes e necessários em alguns casos especiais e específicos.

Leia também: Perguntas e respostas da entrevista SQL

Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

JOINS são uma parte importante da extração de dados. Eles ajudam a combinar dados de várias tabelas de acordo com as necessidades do usuário. O único contra do JOINS pode ser que ele às vezes é complicado de escrever. No final do dia, JOINS são muito úteis e vários tipos de junções podem ser implementados no MySQL.

Em suma, aprender e praticar em todos os bancos de dados mencionados neste artigo aumentará sua experiência. Percorra a visão geral do curso, aprendizado e oportunidades de trabalho envolvidas com ele - plataformas como o upGrad oferecem cursos completos projetados por institutos de alta reputação como o IIIT-B em Desenvolvimento de pilha completa do programa PG executivo.

Prepare-se para uma carreira do futuro

Inscreva-se agora para Mestrado em Engenharia de Software