Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Operações JOIN em PostgreSQL: Guia Prático, Notas de estudo de Bancos de Dados Relacionais

As operações join no postgresql, detalhando inner join, left outer join, right outer join, full outer join e natural join. Inclui sintaxes, exemplos práticos com tabelas de livros e autores, e o uso das cláusulas on e using. O objetivo é fornecer um guia conciso para construir consultas complexas e essenciais para sistemas de informação e análise de dados, destacando a importância de compreender as nuances de cada operação para evitar ambiguidades e garantir resultados precisos.

Tipologia: Notas de estudo

2025

À venda por 28/08/2025

gabriel-batista-barbosa-1
gabriel-batista-barbosa-1 🇧🇷

4 documentos

1 / 6

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
🖥
PostgreSQL JOIN
1. INNER JOIN
O INNER JOIN é a forma mais comum de junção, retornando apenas as linhas
das tabelas envolvidas que satisfazem a condição especificada. Ele combina
linhas de duas tabelas onde há uma correspondência exata na coluna usada
para a junção, excluindo registros sem correspondência. Essa operação é ideal
para cenários onde apenas dados relacionados são necessários, como listar
livros e seus autores correspondentes.
Sintaxe: SELECT colunas FROM tabela1 INNER JOIN tabela2 ON condição;
Exemplo Considere as tabelas livros (com colunas id_livro , titulo , id_autor ) e
autores (com id_autor , nome ). A consulta SELECT livros.titulo, autores.nome FROM livros
INNER JOIN autores ON livros.id_autor = autores.id_autor; retorna apenas os livros que
possuem um autor correspondente na tabela autores .
Uso Útil para relatórios precisos que requerem correspondência exata
entre tabelas.
2. LEFT OUTER JOIN
O LEFT OUTER JOIN (ou LEFT JOIN inclui todas as linhas da primeira tabela
(a "esquerda"), mesmo que não haja correspondência na segunda tabela.
Para linhas sem correspondência, as colunas da segunda tabela retornam
PostgreSQL JOIN
1
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Operações JOIN em PostgreSQL: Guia Prático e outras Notas de estudo em PDF para Bancos de Dados Relacionais, somente na Docsity!

PostgreSQL JOIN

1. INNER JOIN

O INNER JOIN é a forma mais comum de junção, retornando apenas as linhas das tabelas envolvidas que satisfazem a condição especificada. Ele combina linhas de duas tabelas onde há uma correspondência exata na coluna usada para a junção, excluindo registros sem correspondência. Essa operação é ideal para cenários onde apenas dados relacionados são necessários , como listar livros e seus autores correspondentes.

Sintaxe : SELECT colunas FROM tabela1 INNER JOIN tabela2 ON condição; Exemplo  Considere as tabelas livros (com colunas id_livro , titulo , id_autor ) e autores (com id_autor , nome ). A consulta SELECT livros.titulo, autores.nome FROM livros INNER JOIN autores ON livros.id_autor = autores.id_autor; retorna apenas os livros que possuem um autor correspondente na tabela autores. Uso  Útil para relatórios precisos que requerem correspondência exata entre tabelas.

2. LEFT OUTER JOIN

O LEFT OUTER JOIN (ou LEFT JOIN inclui todas as linhas da primeira tabela (a "esquerda"), mesmo que não haja correspondência na segunda tabela. Para linhas sem correspondência, as colunas da segunda tabela retornam

valores NULL. Essa junção é usada quando se deseja preservar todos os registros da tabela principal, como listar todos os livros, incluindo aqueles sem autor associado.

Sintaxe : SELECT colunas FROM tabela1 LEFT OUTER JOIN tabela2 ON condição; Exemplo  Usando as mesmas tabelas, a consulta SELECT livros.titulo, autores.nome FROM livros LEFT OUTER JOIN autores ON livros.id_autor = autores.id_autor; retorna todos os livros, com o nome do autor quando disponível, ou NULL se não houver correspondência. Uso  Ideal para identificar dados incompletos, como livros sem autor registrado.

3. RIGHT OUTER JOIN

O RIGHT OUTER JOIN (ou RIGHT JOIN inclui todas as linhas da segunda tabela (a "direita"), com valores NULL^ nas colunas da primeira tabela quando não há correspondência. Essa junção é menos comum, mas útil para priorizar os dados da segunda tabela , como listar todos os autores, mesmo aqueles sem livros associados.

Sintaxe : SELECT colunas FROM tabela1 RIGHT OUTER JOIN tabela2 ON condição; Exemplo  A consulta SELECT livros.titulo, autores.nome FROM livros RIGHT OUTER JOIN autores ON livros.id_autor = autores.id_autor; retorna todos os autores, com o título do livro correspondente quando houver, ou NULL se o autor não tiver livros. Uso  Aplicável em análises que priorizam os registros da segunda tabela.

4. FULL OUTER JOIN

O FULL OUTER JOIN combina as lógicas do LEFT JOIN e RIGHT JOIN, retornando todas as linhas de ambas as tabelas, com NULL nas colunas onde não há correspondência. Essa junção é útil para análises completas que precisam incluir todos os dados, mesmo sem correspondência.

Sintaxe : SELECT colunas FROM tabela1 FULL OUTER JOIN tabela2 ON condição; Exemplo  A consulta SELECT livros.titulo, autores.nome FROM livros FULL OUTER JOIN autores ON livros.id_autor = autores.id_autor; retorna todos os livros e autores, com correspondências quando existirem e NULL quando não houver. Uso  Útil para relatórios abrangentes, como identificar livros sem autores e autores sem livros, mas pode gerar resultados extensos.

Exemplo Prático em SQL

A seguir, um exemplo prático em SQL cria as tabelas livros e autores , insere dados e demonstra cada tipo de junção. Este código pode ser executado em um ambiente PostgreSQL para visualizar os resultados.

CREATE TABLE autores ( id_autor SERIAL PRIMARY KEY, nome VARCHAR 100 , nacionalidade VARCHAR 50  );

CREATE TABLE livros ( id_livro SERIAL PRIMARY KEY, titulo VARCHAR 100 , id_autor INT );

INSERT INTO autores (nome, nacionalidade) VALUES ('Machado de Assis', 'Brasileira'), ('Jane Austen', 'Britânica'), ('Gabriel García Márquez', 'Colombiana');

INSERT INTO livros (titulo, id_autor) VALUES ('Dom Casmurro', 1, ('Orgulho e Preconceito', 2, ('Memórias de um Sargento de Milícias', NULL;

 INNER JOIN SELECT livros.titulo, autores.nome FROM livros INNER JOIN autores ON livros.id_autor = autores.id_autor;

 LEFT OUTER JOIN SELECT livros.titulo, autores.nome FROM livros LEFT OUTER JOIN autores ON livros.id_autor = autores.id_auto r;

 RIGHT OUTER JOIN SELECT livros.titulo, autores.nome

FROM livros RIGHT OUTER JOIN autores ON livros.id_autor = autores.id_aut or;

 FULL OUTER JOIN SELECT livros.titulo, autores.nome FROM livros FULL OUTER JOIN autores ON livros.id_autor = autores.id_aut or;

 NATURAL JOIN SELECT livros.titulo, autores.nome FROM livros NATURAL JOIN autores;

 USING SELECT livros.titulo, autores.nome FROM livros INNER JOIN autores USING(id_autor);

Resultados Esperados

INNER JOIN  Retorna "Dom Casmurro" Machado de Assis) e "Orgulho e Preconceito" Jane Austen). LEFT JOIN  Inclui todos os livros, com "Memórias de um Sargento de Milícias" tendo NULL para o autor. RIGHT JOIN  Inclui todos os autores, com NULL para o livro de Gabriel García Márquez. FULL JOIN  Combina todos os casos, com NULL onde não há correspondência. NATURAL JOIN e USING  Produzem resultados semelhantes ao INNER JOIN, desde que id_autor seja a única coluna com nome comum.

Considerações Finais

As operações de junção no PostgreSQL são ferramentas poderosas para manipulação de dados relacionais. O INNER JOIN é ideal para resultados precisos, enquanto LEFT, RIGHT e FULL OUTER JOIN são úteis para incluir dados sem correspondência. O NATURAL JOIN e a cláusula USING oferecem conveniência, mas exigem cuidado para evitar ambiguidades. Compreender