Article image
BROGTTI
BROGTTI12/09/2023 13:11
Compartilhe

JUNÇÕES - FIREBIRD

  • #SQL
O objetivo principal das junções é obter dados mais completos e significativos, reunindo informações de diferentes tabelas que estão relacionadas entre si. Isso é especialmente útil em bancos de dados relacionais, onde os dados estão divididos em várias tabelas para evitar a redundância e melhorar a eficiência do armazenamento.

Existem vários tipos de junções em SQL, incluindo:

INNER JOIN:

  • Retorna apenas os registros que têm correspondências nas duas tabelas envolvidas.
  • Os registros que não têm correspondências são excluídos do resultado.
  • É usado quando você deseja obter apenas os registros que têm relações em ambas as tabelas.

LEFT JOIN (OUTER JOIN):

  • Retorna todos os registros da tabela à esquerda e os registros correspondentes da tabela à direita.
  • Se não houver correspondência na tabela à direita, os campos correspondentes serão preenchidos com valores NULL.
  • É usado quando você deseja obter todos os registros da tabela à esquerda, independentemente de haver correspondências na tabela à direita.

RIGHT JOIN (OUTER JOIN):

  • Similar ao LEFT JOIN, mas retorna todos os registros da tabela à direita e os registros correspondentes da tabela à esquerda.
  • É usado quando você deseja obter todos os registros da tabela à direita, independentemente de haver correspondências na tabela à esquerda.

FULL OUTER JOIN (OUTER JOIN):

  • Retorna todos os registros de ambas as tabelas, incluindo registros não correspondentes.
  • Se não houver correspondência em uma das tabelas, os campos correspondentes serão preenchidos com valores NULL.
  • É usado quando você deseja obter todos os registros de ambas as tabelas, incluindo registros que não têm correspondências nas tabelas opostas.

CROSS JOIN:

  • Combina todos os registros de uma tabela com todos os registros da outra tabela, criando um produto cartesiano.
  • Geralmente resulta em um conjunto de resultados muito grande e pode não ser útil em muitos cenários.
  • É usado quando você deseja criar todas as combinações possíveis entre os registros de duas tabelas.

SELF JOIN:

  • É uma junção onde uma tabela é combinada com ela mesma.
  • Pode ser usado para comparar registros dentro da mesma tabela, como encontrar correspondências ou diferenças entre registros.

------------------------------------------------------------------------------------------------------------------

INNER JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
INNER JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

LEFT JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
LEFT JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

RIGHT JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

FULL OUTER JOIN:

SELECT COALESCE(Clientes.nome, 'N/A') AS nome, COALESCE(Pedidos.produto, 'N/A') AS produto
FROM Clientes
FULL OUTER JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

CROSS JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
CROSS JOIN Pedidos;

SELF JOIN:

SELECT c1.nome AS nome_cliente1, c2.nome AS nome_cliente2
FROM Clientes c1
JOIN Clientes c2 ON c1.id_cliente <> c2.id_cliente;

INNER JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
INNER JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

LEFT JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
LEFT JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

RIGHT JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

FULL OUTER JOIN:

SELECT COALESCE(Clientes.nome, 'N/A') AS nome, COALESCE(Pedidos.produto, 'N/A') AS produto
FROM Clientes
FULL OUTER JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;

CROSS JOIN:

SELECT Clientes.nome, Pedidos.produto
FROM Clientes
CROSS JOIN Pedidos;

SELF JOIN:

SELECT c1.nome AS nome_cliente1, c2.nome AS nome_cliente2
FROM Clientes c1
JOIN Clientes c2 ON c1.id_cliente <> c2.id_cliente;
Compartilhe
Comentários (0)