# Tutorial de comandos SQL JOIN

Comandos SQL JOIN são fundamentais em **análises e manipulações de bancos de dados relacionais**. Eles permitem consultar e combinar dados relacionados de várias tabelas em tabelas de resultados. Dependendo do caso de uso, você pode utilizar comandos `JOIN` como `INNER JOIN`, `OUTER JOIN`, `LEFT JOIN`, `RIGHT JOIN` ou `FULL JOIN`.

## O que são comandos SQL JOIN?

Para se trabalhar com bancos de dados, seja localmente ou em nuvem, a linguagem de programação e banco de dados [SQL](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/) é considerada o padrão. Ela permite não apenas a criação de bancos de dados relacionais, mas também a execução de consultas de dados por meio de comandos SQL. Entre os **comandos mais importantes e frequentemente utilizados** estão os da categoria de SQL JOIN.

SQL JOIN são comandos que permitem consultar, relacionar e combinar dados de forma significativa entre diferentes tabelas. A única condição necessária é a existência de uma conexão lógica entre as tabelas. Essa conexão é estabelecida por meio de chaves primárias e estrangeiras apropriadas, através das quais os dados podem ser combinados usando comandos JOIN.

Dica As chaves primárias e chaves estrangeiras são fundamentais para os comandos SQL JOIN. As chaves primárias identificam exclusivamente cada linha de uma tabela e não podem conter valores nulos. As chaves estrangeiras estabelecem uma conexão entre tabelas diferentes. Por exemplo, em uma tabela de funcionários, “ID do Funcionário” pode ser a chave primária. Em uma tabela de veículos, “ID do Veículo” pode ser a chave primária. Ambas as tabelas podem ser relacionadas usando “ID do Veículo” como uma chave estrangeira na tabela de funcionários.

## Tipos de comandos SQL JOIN

Dependendo do caso de uso, **diferentes comandos JOIN** podem ser aplicados. Primeiro, vamos revisar os parâmetros básicos:

- **SELECT**: Define as colunas que serão consideradas no SQL JOIN. Usando um asterisco `*`, você pode selecionar o conjunto de dados inteiro.
- **FROM**: Define a tabela da qual os dados serão combinados com outra tabela.
- **JOIN command**: Gera uma tabela de resultados conforme o comando JOIN, que vincula, combina ou compara dados selecionados.
- **ON**: Especifica a condição do JOIN pela qual os dados recuperados são combinados.

A **sintaxe básica** da maioria dos comandos SQL JOIN contém parâmetros semelhantes:

```sql
SELECT colunaA, colunaB, …
FROM tabelaA
JOIN-comando tabelaB
ON tabelaA.coluna = tabelaB.coluna
```

Dica Você está procurando uma solução segura e poderosa para a gestão do seu sistema de banco de dados? Com o [SQL Server Hosting](https://www.ionos.com/cloud/sql-server-hosting "SQL Server Hosting — IONOS") oferecido pela IONOS, você tem acesso a ofertas de servidores e hospedagem que cumprem os padrões alemães de proteção de dados, incluindo servidores em nuvem, servidores virtuais (VPS), servidores dedicados ou hospedagem Linux com MSSQL, MySQL ou MariaDB.

Os **comandos SQL JOIN** mais importantes são apresentados a seguir.

### SQL INNER JOIN

Este comando permite combinar dados de duas tabelas em uma tabela de resultados quando **dois valores coincidem em uma coluna comum**. O INNER JOIN é o comando JOIN mais frequentemente utilizado e é a configuração padrão quando nenhum tipo específico de JOIN é selecionado.

**Exemplo prático**:

O INNER JOIN pode ser utilizado com uma tabela “Pedidos”, contendo as colunas “Número do Pedido”, “ID do Cliente”, “ID do Produto” e “Data do Pedido”, assim como com uma tabela “Clientes”, contendo as colunas “ID do cliente”, “Nome” e “Endereço”. A coluna “ID do cliente” atua como chave primária na tabela “Clientes” e como chave estrangeira na tabela “Pedidos”. O INNER JOIN combina, **com base no ID do cliente**, todos os pedidos e dados de clientes na tabela de resultados.

O comando SQL INNER JOIN é o seguinte:

```sql
SELECT pedidos.número_pedido, clientes.nome, pedidos.produtoid, pedidos.data_pedido
FROM pedidos
INNER JOIN clientes
ON pedidos.clienteid = clientes.clienteid
```

### OUTER JOIN

OUTER JOIN é um termo abrangente para os comandos SQL LEFT JOIN, RIGHT JOIN e FULL JOIN. Ao contrário do INNER JOIN, o SQL OUTER JOIN combina não apenas linhas correspondentes, mas também linhas não correspondentes usando o valor NULL. Uma explicação detalhada segue nas seções LEFT JOIN, RIGHT JOIN e FULL JOIN.

### SQL LEFT JOIN

O comando LEFT JOIN conecta todos os dados de uma tabela à esquerda com os dados correspondentes da tabela à direita. Para linhas que não correspondem, o comando retorna um **valor NULL**.

**Exemplo prático**:

O SQL LEFT JOIN combina tanto registros correspondentes quanto não correspondentes de uma tabela à esquerda “Clientes” com uma tabela à direita “Veículos”, usando a coluna comum “VeículoID”. Diferentemente do INNER JOIN, o comando também retorna **dados não correspondentes** com o valor NULL.

O comando SQL LEFT JOIN é o seguinte:

```sql
SELECT  *
FROM  clientes
LEFT JOIN  veículos
ON  clientes.veículoid  =  veículos.veículoid
### SQL RIGHT JOIN
O comando RIGHT JOIN conecta dados **da tabela à direita com dados correspondentes da tabela à esquerda**. Quando não há correspondência, também aparece um valor NULL nas colunas da tabela à esquerda.
**Exemplo prático**:
O comando SQL RIGHT JOIN adiciona, com base no `Id do Cliente`, todos os dados selecionados da tabela à direita, “Pedidos”, à tabela à esquerda, “Clientes”. Quando não há correspondência, o comando retorna o valor NULL – por exemplo, se para um `Id do Cliente` não houver pedidos nem nomes.
O comando SQL RIGHT JOIN é o seguinte:
```sql
SELECT  pedidos.numero_pedido, clientes.nome, pedidos.produtoid, pedidos.data_pedido
FROM  clientes
RIGHT JOIN  pedidos
ON  pedidos.clienteid  =  clientes.clienteid
```

</div>### SQL FULL JOIN

O comando `FULL JOIN` é uma **combinação de LEFT JOIN e RIGHT JOIN** e também é conhecido como FULL OUTER JOIN. Esse comando reúne todos os registros e colunas de ambas as tabelas. Quando não há correspondência, o comando retorna valores NULL.

**Exemplo prático**:

O `FULL JOIN` combina todos os dados correspondentes e não correspondentes de uma tabela à direita “Funcionários” com uma tabela à esquerda “Departamento” com base no ID do departamento. Se não houver um departamento correspondente, será exibido um valor NULL na coluna de Departamento.

O comando SQL FULL JOIN é como segue:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```sql
SELECT  *
FROM  funcionários
FULL JOIN  departamento
ON  funcionários.departamentoid  =  departamento.departamentoid
### CROSS JOIN
O `CROSS JOIN` é também conhecido como JOIN cartesiano. Ele combina todos os registros da tabela esquerda com todos os registros da tabela direita **independentemente de correspondências**. Como ele retorna todas as combinações possíveis, não é necessário um parâmetro ON para uma condição de JOIN.
**Exemplo prático**:
O `CROSS JOIN` combina todos os dados da tabela direita “Produtos” com a tabela à esquerda “Pedidos”.
O comando SQL `CROSS JOIN` é como segue:
```sql
SELECT  *
FROM  produtos
CROSS JOIN  pedidos
```

### NATURAL JOIN

O comando `NATURAL JOIN` combina todos os registros de duas tabelas **com base em colunas comuns**. O parâmetro ON não é necessário, pois a coluna comum não é uma exigência, e o comando automaticamente une as colunas comuns das tabelas.

**Exemplo prático**:

O `NATURAL JOIN` combina as tabelas “Equipe” e “Departamento” com base nas colunas comuns. O comando retorna resultados apenas se houver **colunas com o mesmo nome em ambas as tabelas** .

O SQL `NATURAL JOIN` é como segue:

```sql
SELECT  *
FROM  pedidos
NATURAL JOIN  departamento
```

### SQL SELF JOIN

O comando SQL SELF JOIN combina uma tabela com ela mesma, tratando-a como tabela esquerda *e* direita. Você pode, portanto, usar qualquer outro comando para uma operação de SELF JOIN. Na sintaxe, `t1` e `t2` são aliases para a tabela direita e esquerda, já que é a mesma tabela.

**Sintaxe Básica com Exemplo de LEFT JOIN**:

```sql
SELECT  *
FROM  tabelaA AS t1
LEFT JOIN  tabelaA AS t2
ON  t1.nome_coluna  =  t2.nome_coluna
```

Dica Para uma visão rápida da aplicação de SQL, veja também nossa [introdução ao SQL com exemplos](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/aprender-sql-com-exemplos/).


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-join/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-join/) for AI/LLM consumption.