Prévia do material em texto
Junção externa em SQL Apresentação Com o surgimento dos microcomputadores e o aumento do volume de informações produzidas e armazenadas, nasceu uma nova realidade técnica, que foi batizada de sistemas de gerenciamento de banco de dados, em que a principal vantagem é o estado coerente das informações que se encontram armazenadas no banco. Dentre as diversas operações possibilitadas pela linguagem SQL, uma das mais usadas para a recuperação de dados são as relações entre tabelas que, geralmente, utilizam atributos de mesmo valor. Nesta Unidade de Aprendizagem, você vai estudar os conceitos de junções externas em SQL, desde sua relação com a álgebra relacional, além de perceber as diferenças entre as cláusulas existentes, por meio de exemplos práticos em um banco de dados relacional, o PostgreSQL. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Descrever a operação de junção externa em álgebra relacional.• Diferenciar junção externa à esquerda, à direita e completa.• Aplicar a operação de junção externa em SQL.• Desafio Os sistemas gerenciadores de banco de dados relacional proporcionam uma infinidade de análises, por meio de relacionamentos entre tabelas, que auxiliam os gestores a buscar uma melhor solução para seus problemas. Com a necessidade do nível gerencial e estratégico, é possível elaborar diversos relatórios, agrupando, classificando e qualificando dados, provendo seu resultado em diferentes formas de apresentação. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/00989250-a341-4cc7-9ba2-67e702da398e/ae2bae75-cef5-40be-a7f5-a0628bf03b3c.png Elabore as demais cláusulas complementares para as duas consultas. Além disso, apresente os resultados obtidos com sua execução, ou seja, quais embalagens a Mel Puro não tem em relação a sua concorrente e quais esta não tem em relação à Mel Puro. Infográfico As junções de operações agrupam linhas com base nas semelhanças com os valores da coluna encontrados em outras tabelas. Uma junção externa pode ser uma junção esquerda (LEFT JOIN), direita (RIGHT JOIN) ou completa (FULL JOIN), mas o tipo de junção deve ser sempre explicitado ao se criar uma instrução SQL em banco de dados relacional. Estabelecendo um paralelo com a álgebra relacional, as junções em banco de dados relacional seguem o mesmo padrão, que é obter elementos comuns às tabelas (conjuntos). No Infográfico a seguir, você vai fixar os conceitos e distinguir o uso de cada um dos tipos de junções externas, visualizando os resultados após sua execução, por meio de instruções SQL. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/2a49c11a-78f5-4cc6-98f4-9521066c4876/2ab108a5-92be-4446-a98e-89bd8e1c7e92.png Conteúdo do livro Com o surgimento dos microcomputadores, um novo segmento nasceu, denominado de sistemas de gerenciamento de banco de dados (SGBD), que tem como premissa básica o estado coerente dos dados que se encontram armazenados no banco de dados. Nos últimos anos, com o crescimento exponencial do volume de informações digitais, os bancos de dados se tornaram um componente essencial na vida das pessoas, uma vez que possibilitam encontrar as mais variadas atividades que, de uma forma ou outra, têm alguma relação com as tabelas pertencentes ao banco de dados. No capítulo Junção externa em SQL, da obra Consultas em banco de dados, base teórica desta Unidade de Aprendizagem, você vai conhecer os conceitos das operações de junção externa e sua relação com a álgebra relacional. Além disso, vai identificar, por meio de exemplos práticos, o uso e as diferenças de cada uma das cláusulas de condição que compõem essas operações. Por fim, vai analisar instruções em código SQL com o padrão utilizado pelo sistema gerenciador de banco de dados PostgreSQL. Boa leitura. CONSULTAS EM BANCO DE DADOS Marcel Santos Silva Junção externa em SQL Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Descrever a operação de junção externa em álgebra relacional. � Diferenciar junção externa à esquerda, à direita e completa. � Aplicar a operação de junção externa em SQL. Introdução Com o surgimento dos computadores, as informações necessitavam de um local para armazenamento, o que deu origem aos bancos de dados, que consistem em guardar grandes volumes de informações digitais, e, por consequência, a um novo seguimento, conhecido como sistemas de gerenciamento de banco de dados (SGBD), que têm como principal vanta- gem o estado coerente dos dados armazenados no banco. De acordo com Alves (2014), atualmente os bancos de dados representam um componente essencial na vida da sociedade, uma vez que possibilitam encontrar as mais variadas atividades de algum modo relacionadas a eles. Assim, surge a junção, a maneira mais utilizada para combinar as informações de duas ou mais relações, no contexto de banco de dados, a tabela. Neste capítulo, você conhecerá os conceitos das operações de junção externa em SQL e sua relação com a álgebra relacional, identificará por meio de exemplos práticos o uso e as diferenças de cada uma das cláu- sulas de condição que compõem essas operações (p. ex., junção direita, esquerda e completa), e, por fim, será capaz de analisar instruções em código SQL (Structured Query Language) com a codificação-padrão do sistema gerenciador de banco de dados, o PostgreSQL. 1 Junção externa em álgebra relacional A álgebra relacional se define como uma linguagem de consulta formal asso- ciada ao modelo relacional, estruturada em operações específicas de banco de dados relacional, em operações de conjuntos e em funções aritméticas. Algumas variações da operação junção, suportadas por SQL, baseiam-se em valores nulos, conhecidas como junções externas (outer join). Tais associações retornam todas as tuplas a partir de, ao menos, uma das tabelas descritas na cláusula FROM, contanto que as linhas atendam às condições de busca expli- citadas na cláusula WHERE (RAMAKRISHNAN; GEHRKE, 2008). A junção externa se caracteriza por um conjunto de operações que possibi- litem manter parte ou a totalidade das linhas de relações a combinar, mesmo que não satisfaçam à condição de junção (DATE, 2005). De acordo com Ramakrishnan e Gehrke (2008), existem três tipos de operações de junção externa, como apresentado a seguir. Junção externa à esquerda (LEFT JOIN) ⟕ Mantém todas as linhas da relação à esquerda R e, para as linhas que não satisfazem à condição de junção, preenche os atributos da relação à direita S com valores NULL, sendo representada pela expressão: R ⟕COND S Com o uso de LEFT, todas as tuplas da tabela da esquerda que não apre- sentam correspondentes na tabela da direita são acrescidas ao resultado da consulta. Por meio do diagrama de Venn, a Figura 1 mostra o retorno dessa condição, conforme a álgebra relacional, em que a parte preenchida corresponde aos registros retornados. Figura 1. LEFT JOIN. Junção externa em SQL2 Junção externa à direita (RIGHT JOIN) ⟖ Mantém todas as linhas da relação à direita S e, para as linhas que não satis- fazem à condição de junção, preenche os atributos da relação à esquerda R com valores NULL, sendo representada pela expressão: R ⟖COND S O RIGHT é o oposto da junção à esquerda, ou seja, a tabela resultante tem, incondicionalmente, uma linha para cada tupla da tabela à direita. De certo modo, a diferença entre RIGHT e LEFT reside na escolha da tabela em que os elementos que não apresentam correspondentes serão escolhidos para serem acrescidos ao resultado da consulta. A Figura 2 apresenta, pelo diagrama de Venn, o retorno dessa condição, conforme a álgebra relacional, em que a parte preenchida corresponde aos registros retornados. Figura 2. RIGHTJOIN. Junção externa completa (FULL JOIN) ⟗ Mantém todas as linhas de ambas as relações e, para as linhas que não satis- fazem à condição de junção, preenche os atributos da relação combinada com valores NULL, sendo representada pela expressão: R ⟗COND S 3Junção externa em SQL A palavra FULL implica na execução de LEFT e RIGHT em uma única instrução. Pelo diagrama de Venn, a Figura 3 exibe o retorno dessa condição, conforme a álgebra relacional, em que a parte preenchida corresponde aos registros retornados, ou seja, todos os registros existentes nas duas relações. Figura 3. FULL JOIN. Pode-se desabilitar os valores nulos especificando diretamente NOT NULL como parte da definição do atributo. Ainda, como os campos de uma chave primária não podem assumir valores nulos, existe uma restrição NOT NULL implícita para todo atributo definido como chave primária (PRIMARY KEY) (RAMAKRISHNAN; GEHRKE, 2008) Portanto, quando se deseja selecionar linhas na tabela à esquerda que não têm linhas correspondentes na tabela à direita, LEFT JOIN, usa-se a restrição IS NULL. Com isso, o resultado apresentado considerará somente as linhas da tabela à esquerda sem correspondência com a tabela à direita, conforme a Figura 4. Figura 4. LEFT JOIN com linhas sem correspondência à direita. Junção externa em SQL4 Outra maneira refere-se a quando se deseja selecionar linhas da tabela à direita que não têm linhas correspondentes na tabela à esquerda, RIGHT JOIN, em que se usa a restrição IS NULL. Com isso, o resultado apresentado considerará somente as linhas da tabela à direita sem correspondência com a tabela à esquerda, como mostra a Figura 5. Figura 5. RIGHT JOIN com linhas sem correspondência à esquerda. Por fim, quando precisamos selecionar linhas das duas tabelas que não são correspondentes, FULL JOIN, usamos a restrição IS NULL para ambos os códigos. Com isso, o resultado apresentado considerará somente as linhas sem correspondência em ambas as tabelas, de acordo com a Figura 6. Figura 6. FULL JOIN com linhas sem correspondência às duas tabelas. 5Junção externa em SQL 2 Tipos de junções externas em SQL Para representar uma junção externa, utiliza-se a cláusula OUTER JOIN, emprego, contudo, opcional, uma vez que são as cláusulas LEFT JOIN, RIGHT JOIN e FULL JOIN que caracterizam as junções externas. Para contextualizar os conceitos discutidos, apresentamos as tabelas já criadas com as informações necessárias para realização das consultas SQL. � Tabela cidade: codigo_cidade nome_cidade codigo_subregiao 1 Curitiba 1 2 Sao Paulo 2 3 Guarulhos 2 4 Buenos Aires 4 5 La Plata 4 6 Cordoba 5 7 Los Angeles 6 8 San Francisco 6 9 Orlando 7 10 Miami 7 11 Siena 8 12 Florenca 8 13 Milao 9 14 Yokohama Junção externa em SQL6 � Tabela subregião: codigo_subregiao nome_subregiao codigo_pais 1 Paraná 1 2 Sao Paulo 1 3 Rio Grande do Sul 1 4 Buenos Aires 2 5 Cordoba 2 6 Califórnia 3 7 Flórida 3 8 Toscana 4 9 Lombardia 4 10 Aquitania 5 11 Borgonha 5 12 Calábria 5 13 Massachussetts 3 14 Chiapas � Tabela pais: codigo_pais nome_pais 1 Brasil 2 Argentina 3 Estados Unidos 4 Itália 5 França 6 Noruega 7Junção externa em SQL Com as tabelas dispondo de registros, podemos realizar as operações de junções externas: a primeira é a junção à esquerda, na qual todas as tuplas da tabela sub-região sem correspondentes na tabela de cidades são acrescidas ao resultado da consulta, confirmado pela instrução a seguir: SELECT * FROM subregiao LEFT OUTER JOIN cidade USING (codigo _ subregiao); O resultado da instrução utilizando o LEFT JOIN é apresentado a seguir: codigo_ subregiao nome_ subregiao codigo_ pais codigo_ cidade nome_ cidade 1 Paraná 1 1 Curitiba 2 Sao Paulo 1 2 Sao Paulo 2 Sao Paulo 1 3 Guarulhos 5 Cordoba 2 6 Cordoba 6 Califórnia 3 7 Los Angeles 6 Califórnia 3 8 San Francisco 7 Flórida 3 9 Orlando 7 Flórida 3 10 Miami 8 Toscana 4 11 Siena 8 Toscana 4 12 Florença 9 Lombardia 4 13 Milao 11 Borgonha 5 NULL NULL 12 Calábria 5 NULL NULL 10 Aquitania 5 NULL NULL 13 Massachussetts 3 NULL NULL 3 Rio Grande do Sul 1 NULL NULL 14 Chiapas NULL NULL NULL Junção externa em SQL8 A junção à direita apresentará todas as tuplas da tabela cidade que não apresentam correspondentes na tabela sub-região como resultado da consulta, afirmação confirmada pela instrução a seguir: SELECT * FROM subregiao RIGHT OUTER JOIN cidade USING (codigo _ subregiao); O resultado da instrução utilizando o RIGHT JOIN é o seguinte: codigo_ subregiao nome_ subregiao codigo_ pais codigo_ cidade nome_ cidade 1 Paraná 1 1 Curitiba 2 Sao Paulo 1 2 Sao Paulo 2 Sao Paulo 1 3 Guarulhos 4 NULL NULL 4 Buenos Aires 4 NULL NULL 5 La Plata 5 Cordoba 2 6 Cordoba 6 Califórnia 3 7 Los Angeles 6 Califórnia 3 8 San Francisco 7 Flórida 3 9 Orlando 7 Flórida 3 10 Miami 8 Toscana 4 11 Siena 8 Toscana 4 12 Florença 9 Lombardia 4 13 Milao NULL NULL NULL 14 Yokohama Por fim, a instrução utilizando o FULL JOIN apresentará todas as tuplas das duas tabelas, independentemente de terem ou não relação, necessidade ilustrada pela instrução a seguir: SELECT * FROM subregiao FULL OUTER JOIN cidade USING (codigo _ subregiao); 9Junção externa em SQL O resultado da instrução utilizando o FULL JOIN é: codigo_ subregiao nome_ subregiao codigo_ pais codigo_ cidade nome_ cidade 1 Paraná 1 1 Curitiba 2 Sao Paulo 1 2 Sao Paulo 2 Sao Paulo 1 3 Guarulhos 4 NULL NULL 4 Buenos Aires 4 NULL NULL 5 La Plata 5 Cordoba 2 6 Cordoba 6 Califórnia 3 7 Los Angeles 6 Califórnia 3 8 San Francisco 7 Flórida 3 9 Orlando 7 Flórida 3 10 Miami 8 Toscana 4 11 Siena 8 Toscana 4 12 Florença 9 Lombardia 4 13 Milao NULL NULL NULL 14 Yokohama 11 Borgonha 5 NULL NULL 12 Calábria 5 NULL NULL 10 Aquitania 5 NULL NULL 13 Massachus- setts 3 NULL NULL 3 Rio Grande do Sul 1 NULL NULL 14 Chiapas NULL NULL NULL Junção externa em SQL10 Alguns SGBD não dispõem de suporte diretamente ao operador de junção externa completa. Portanto, nesses sistemas, a junção externa completa é formulada tomando a união (UNION) de duas junções externas de um único lado, ou seja, duas LEFT JOIN ou RIGHT JOIN. 3 Aplicação de junções externas em bancos de dados Com o objetivo de facilitar o entendimento dos exemplos, serão criadas as tabelas cesta1 e cesta2. Para isso, usaremos a instrução CREATE TABLE. CREATE TABLE cesta1 ( cesta1 _ id INT PRIMARY KEY, cesta1 _ fruta VARCHAR (100) NOT NULL); CREATE TABLE cesta2 ( cesta2 _ id INT PRIMARY KEY, cesta2 _ fruta VARCHAR (100) NOT NULL); O próximo passo consiste em inserir alguns dados nas tabelas cesta1 e cesta2, o que será realizado pelo comando INSERT. INSERT INTO cesta1 (cesta1 _ id, cesta1 _ fruta) VALUES (1, 'Laranja'), (2, 'Banana'), (3, 'Melancia'), (4, 'Maçã'); INSERT INTO cesta1 (cesta2 _ id, cesta2 _ fruta) VALUES (1, 'Pera'), (2, 'Maçã'), (3, 'Laranja'), (4, 'Morango'); 11Junção externa em SQL As tabelas apresentam algumas frutas em comum, como maçã e laranja — chamaremos a cesta1 de tabela esquerda e a cesta2 de tabela direita. A instrução a seguir une a tabela esquerda à tabela direita usando a junção esquerda (ou junção externa esquerda): SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a LEFT JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta; O resultado da instrução é apresentado no Quadro 1, a partir da utilização da cláusula LEFT JOIN. Note que a junção esquerda retorna um conjunto completo de linhas da tabela à esquerda com as linhas correspondentes, se disponíveis na tabela à direita. Se não houver correspondência, o lado direito terá valores nulos. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta 1 Laranja 3 Laranja 2 Banana (null) (null) 3 Melancia (null) (null) 4 Maçã 2 Maçã Quadro 1. Resultado do uso da junção esquerda Para obter somente os registros da tabela à esquerda que não têm correspon- dência na tabelada direita, usamos a cláusula WHERE, seguida de IS NULL: Junção externa em SQL12 SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a LEFT JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta WHERE b.cesta2 _ id IS NULL; O resultado dessa instrução é apresentado no Quadro 2. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta 2 Banana (null) (null) 3 Melancia (null) (null) Quadro 2. Resultado do uso da junção esquerda para relações nulas A junção direita ou a junção externa direita corresponde a uma versão invertida da junção esquerda, produzindo um conjunto de resultados que contém todas as linhas da tabela direita, com as linhas correspondentes da tabela à esquerda. Se não houver correspondência, o lado esquerdo conterá valores nulos. A instrução a seguir executa a junção direita entre as tabelas da esquerda e da direita: SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a RIGHT JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta; 13Junção externa em SQL O resultado da instrução é apresentado no Quadro 3, que utilizou a cláusula RIGHT JOIN. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta (null) (null) 1 Pera 4 Maçã 2 Maçã 1 Laranja 3 Laranja (null) (null) 4 Morango Quadro 3. Resultado do uso da junção direita Do mesmo modo, para obter somente os registros da tabela à direita, que não têm correspondência na tabela à esquerda, usamos a cláusula WHERE, seguida de IS NULL, conforme a seguir: SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a RIGHT JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta WHERE a.cesta1 _ id IS NULL; Junção externa em SQL14 O resultado da instrução, com a inserção da cláusula WHERE, é apresentado no Quadro 4. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta (null) (null) 1 Pera (null) (null) 4 Morango Quadro 4. Resultado do uso da junção direita para relações nulas A junção externa completa ou junção completa produz um conjunto de resultados que contém todas as linhas das tabelas à esquerda e à direita, com as linhas correspondentes de ambos os lados, quando disponíveis. Se não houver correspondência, o lado ausente conterá valores nulos. A declaração a seguir ilustra a junção externa completa: SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a FULL JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta; 15Junção externa em SQL Observe que a palavra-chave OUTER é opcional, pois não foi empregada na instrução anterior. O conjunto de resultados é apresentado no Quadro 5. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta 1 Laranja 3 Laranja 2 Banana (null) (null) 3 Melancia (null) (null) 4 Maçã 2 Maçã (null) (null) 1 Pera (null) (null) 4 Morango Quadro 5. Resultado do uso da junção completa Para retornar um conjunto de linhas exclusivas das tabelas à esquerda e à direita, é necessário, primeiro, utilizar a junção completa e, depois, excluir as linhas não desejadas dos dois lados usando uma cláusula WHERE, seguida de IS NULL: SELECT a.cesta1 _ id, a.cesta1 _ fruta, b.cesta2 _ id, b.cesta2 _ fruta FROM cesta1 a FULL JOIN cesta2 b ON a.cesta1 _ fruta = b.cesta2 _ fruta WHERE a.cesta1 _ id IS NULL OR b.cesta2 _ id IS NULL; Junção externa em SQL16 O conjunto de resultados é apresentado no Quadro 6. cesta1_id cesta1_ fruta cesta2_id cesta2_ fruta 2 Banana (null) (null) 3 Melancia (null) (null) (null) (null) 1 Pera (null) (null) 4 Morango Quadro 6. Resultado do uso da junção completa para relações nulas Como você deve ter notado, o objetivo das junções externas consiste em promover a busca de informações a partir da relação entre tabelas em bancos de dados relacionais, a fim de possibilitar a realização de operações nas quais se pode manter parte dos registros ou a sua totalidade, em relações de combinação, mesmo que tais registros não satisfaçam à condição explicitada na instrução SQL criada. ALVES, W. P. Banco de dados. São Paulo: Érica, 2014. 160 p. DATE, C. J. SQL e teoria relacional: como escrever códigos SQL precisos. São Paulo: Novatec. 2015. 536 p. RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de dados. 3. ed. Porto Alegre: AMGH; Bookman, 2008. 905 p. Leituras recomendadas CARVALHO, V. PostgreSQL: banco de dados para aplicações web modernas. São Paulo: Casa do Código, 2017. 220 p. HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2008. 282 p. (Série Livros Didáticos Informática UFRGS, 4). MILANI, A. PostgreSQL: guia do programador. São Paulo: Novatec, 2008. 392 p. 17Junção externa em SQL Dica do professor Já está mais do que solidificada a importância do relacionamento de informações em diferentes tabelas de bancos de dados relacionais. Portanto, para se obter o máximo de qualidade e possibilidades na recuperação dessas informações, é imprescindível conhecer claramente as cláusulas de junções externas (OUTER JOIN). Nesta Dica do Professor, você vai ver os principais conceitos sobre junções externas, objetivando seu melhor entendimento das cláusulas de esquerda, direita e completa. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/ba44c2b3b386ae4e8f894cfd7c3bed00 Exercícios 1) Com o uso de LEFT, todas as linhas da tabela da esquerda que não têm correspondentes na tabela da direita são acrescidas no resultado da consulta. Considerando a instrução abaixo, selecione as partes ausentes na cláusula JOIN para unir as duas tabelas Pedidos e Clientes, usando o campo cod_cliente em ambas. SELECT * FROM Pedidos LEFT JOIN Clientes ON ____________; A) Clientes = Pedidos B) Clientes.codigo = Pedidos.codigo C) Pedidos.cod_cliente = Clientes.cod_cliente D) Pedidos.cod_cliente <> Clientes.cod_cliente E) Pedidos_cod_cliente = Pedidos 2) Antes de utilizar uma junção externa, é necessário identificar qual resultado se deseja, pois uma cláusula errada na instrução pode gerar um resultado diferente. Escolha a cláusula JOIN correta, que preencha a linha, para selecionar todos os registros da tabela Clientes, mais todas as correspondências na tabela Pedidos. SELECT * FROM Pedidos __________________________ ON Pedidos.cliente_ID = Clientes.cliente_ID; A) LEFT JOIN Clientes B) FULL JOIN Clientes C) RIGHT JOIN Clientes D) INNER JOIN Clientes E) CROSS JOIN Clientes 3) A junção externa tem alguns tipos, que são utilizados de acordo com a necessidade. Há um JOIN que produz um conjunto de resultados que contém todas as linhas da tabela direita, com as linhas correspondentes da tabela esquerda. Se não houver correspondência, o lado esquerdo conterá valores nulos. A qual junção a afirmação se refere? A) INNER. B) FULL. C) CROSS. D) LEFT. E) RIGHT. 4) Assim como toda linguagem de consulta estruturada, a junção externa tem um padrão para a elaboração da instrução que utiliza suas cláusulas específicas. Considerando a instrução SQL "SELECT * FROM estado FULL OUTER JOIN municipio USING (cod_estado);", qual termo é considerado opcional? A) SELECT. B) FROM. C) FULL. D) OUTER. E) JOIN. O objetivo das junções externas é promover a busca de informações a partir da relação entre tabelas em bancos de dados relacionais, principalmente na identificação de tuplas não relacionadas. A relação (ALUNO-DISCIPLINA) é o resultado da execução de uma junção específica. 5) Qual é essa junção? A) LEFT OUTER JOIN. B) RIGHT OUTER JOIN. C) FULL OUTER JOIN. D) INNER JOIN. E) NATURAL JOIN. Na prática Para aprofundar o conhecimento em junções externas, é imprescindível a definição da condição de junção, ou seja, quais linhas de determinada tabela têm ou não relação com linhas de outra tabela. Com base no que já foi demonstrado,a junção externa pode ser utilizada de diferentes formas, de acordo com a necessidade do usuário, podendo ser LEFT JOIN, RIGHT JOIN ou FULL OUTER JOIN. Veja, Na Prática, a forma correta de se elaborar uma instrução SQL para operações de junções externas, observando o resultado obtido a partir do uso de LEFT JOIN. Conteúdo interativo disponível na plataforma de ensino! Saiba + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Consultando múltiplas tabelas do banco de dados com Joins Neste vídeo, você aprenderá a consultar várias tabelas ao mesmo tempo, usando o conceito de junção de tabelas no PostgreSQL. Para isso, utilizará o OUTER JOIN (LEFT JOIN, RIGHT JOIN, FULL JOIN). Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Aula sobre Left Join Esta videoaula contempla a utilização do Left Join usando um cenário simples de matrícula em disciplina. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. SQL JOIN: Entenda como funciona o retorno dos dados Muitos desenvolvedores têm a dificuldade de saber qual resultado é retornado por cada join no SQL. Entenda como funciona o retorno dos dados neste artigo. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.youtube.com/embed/llR-qo1qPGs https://www.youtube.com/embed/0TgZH2-jPwg https://www.devmedia.com.br/sql-join-entenda-como-funciona-o-retorno-dos-dados/31006#5?v=281161737