UNID 4.2 - Consultas Avançadas Com Joins e Subqueries
UNID 4.2 - Consultas Avançadas Com Joins e Subqueries
UNID 4.2 - Consultas Avançadas Com Joins e Subqueries
Subqueries
APRESENTAÇÃO
Existem recursos avançados que podem aprimorar a realização de consultas SQL em bases de
dados. Esses recursos são conhecidos como joins ou subqueries. Os joins são métodos utilizados
para junção e cruazemento entre tabelas, enquanto as subqueries são subconsultas colocadas
com SELECTs para realizar pesquisas especializadas, que, sem esse recurso, teriam um alto
grau de complexidade, dificultando, assim, sua realização. Logo, tem-se uma instrução SQL no
interior de outra instrução SQL, para aprimoramento da consulta.
Nesta Unidade de Aprendizagem, você verá o que são joins e subqueries e entender como
identificá-los, implementá-los e utilizá-los em uma consulta.
Bons estudos.
DESAFIO
Foi solicilitado a uma empresa de grande porte da área de Tecnologia da Informação que
retornasse a data máxima de forma descrescente das faturas por fornecedor, a fim de orquestrar
melhor a gestão dos prazos junto ao departamento financeiro.
Sendo você o DBA responsável pelo banco de dados, esclareça qual é a melhor forma de
realizar essa consulta, sabendo que há duas tabelas (tb_fornecedores e tb_faturas) e o objetivo é
retornar as datas máximas de forma descrescente das faturas por fornecedor. Exemplifique.
INFOGRÁFICO
As consultas avançadas com joins e subqueries são utilizadas para realizar consultas com
cruzamento de dados entre tabelas diferentes e para efetuar consultas especializadas entre dados
de diferentes tabelas, respectivamente.
Quando o dado necessário pertence a uma tabela, temos uma consulta simples. Entretanto, ela
não será sempre uma consulta simples, logo, se fará necessário cruzar dados contidos em tabelas
diferentes.
Boa leitura.
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE DADOS
Pedro Henrique Chagas Freitas
Consultas avançadas
com joins e subqueries
Objetivos de aprendizagem
Identificar uma consulta utilizando joins e subqueries.
Exemplificar uma consulta utilizando joins e subqueries.
Implementar uma consulta utilizando joins e subqueries.
Introdução
Os joins e subqueries são instruções utilizadas em conjunto ou de forma
separada para elaborar consultas avançadas em bancos de dados.
Neste capítulo, você vai estudar a utilização dos joins e subqueries para
elaboração de consultas avançadas, além de exemplos que utilizam joins
e subqueries. Você vai estudar, também, a implementação em consultas
avançadas com joins e subqueries.
Para utilização de dois joins, são necessárias pelo menos duas tabelas, entre as quais
deve haver algum nível de relacionamento para que se possa cruzar os dados. Por
exemplo: podemos ter um campo comum entre as tabelas.
4 Consultas avançadas com joins e subqueries
Nesse caso, estamos fazendo uma consulta dentro de outra consulta, para
listar todos os DVDs com o maior preço. Na subquery, buscamos qual o valor
máximo encontrado na tabela loja, então buscamos todos os NOMES e PRE-
ÇOS dos DVDs que contém preço igual ao máximo encontrado pela subquery.
Vamos realizar, então, alguns joins. Para realizar um INNER JOIN, faríamos:
O resultado seria:
6 Consultas avançadas com joins e subqueries
ravadora
Temos, também, o left join, que é utilizado para articular e apresentar como
resultado todos os registros que estão na tabela X (mesmo que não estejam na
tabela Y) e os registrados na tabela Y em comum com a tabela X.
Faríamos o seguinte:
8 Consultas avançadas com joins e subqueries
Como temos o left join, temos também o right join. Neste caso, teremos
como resultado todos os registros da tabela Y, mesmo os que não estejam na
tabela X, e os registros da tabela X que são comuns à tabela Y.
Faríamos:
Temos também o outer join ou full outer join, que tem como objetivo
mostrar todos os registros que estão na tabela X e na tabela Y.
Faríamos:
Temos o left excluding join, que retorna todos os registros que estão da
tabela X e que não estão na tabela Y.
Como temos o left excluding join, temos também o right excluding join,
que é utilizado para retornar todos os registros que estão na tabela Y e que
não estejam na tabela X.
Por fim, temos o outer excluding join. Neste caso, teremos como resultado
todos os registros que estão na tabela Y, mas que não estejam na tabela X, e
todos os registros que estão na tabela X, mas que não estão na tabela Y.
Podemos, na maioria dos casos, substituir uma subquery (subconsulta) por um join
(junção), porque os joins são mais simples de entender, ler e executar.
Leituras recomendadas
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson,
2010.
KORTH, H. F.; SILBERSHATZ, A.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio
de Janeiro: Campus, 2012.
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2010. (Série
Livros Didáticos Informática UFRGS, v.4).
RAMAKRISHNAN, R. Sistemas de gerenciamento de banco de dados. 3. ed. Porto Alegre:
Penso, 2009.
SETZER, V. W. Banco de dados: conceitos, modelos, gerenciadores, projeto lógico,
projeto físico. 3. ed. São Paulo: Blücher, 2002.
DICA DO PROFESSOR
Os joins, assim como as subqueries, são utilizados em conjunto com os comandos SQL para
realizar consultas avançadas.
Nesta Dica do Professor, você verá a implementação de consultas com joins e subqueries, a fim
de verificar demandas de um negócio de dois times e de uma loja de comércio eletrônico.
EXERCÍCIOS
A) Junção.
B) Restrição.
C) Exclusão.
D) Inserção.
E) Alteração.
A) Pré-consulta.
B) Pós-consulta.
C) Subconsulta.
D) Alteração de consulta.
E) Exclusão de consulta.
A) ALTER.
B) DELETE.
C) INSERT.
D) UPDATE.
E) SELECT.
A) Subquerie.
B) Join.
C) Insert.
D) Revoke.
E) Update.
5) Qual tipo de join apresenta os resultados comuns entre duas tabelas?
B) RIGHT JOIN.
C) LEFT JOIN.
D) INNER JOIN.
E) JOIN.
NA PRÁTICA
No dia a dia, é comum a utilização de joins (junções) e subqueries (subconsultas). Apesar dos
dados serem armazenados em tabelas, às vezes, a informação necessária vem do cruzamento
entre elas. Logo, uma informação pode ser oriunda da junção de tabelas ou de consultas em mais
de uma tabela.
SAIBA MAIS
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do
professor:
Este vídeo aborda o uso de subconsultas no SQL com SQL server, explicando o seu
funcionamento.
Conteúdo interativo disponível na plataforma de ensino!
Este vídeo mostra como é possível combinar dados de duas ou mais tabelas relacionadas em
uma consulta utilizando a cláusula INNER JOIN, além de outros tipos de JOINS, no SQL
Server.
Este vídeo ensina a utilizar o LEFT JOIN no SQL Server 2012, fazendo uso de três tabelas:
tblPessoa, tblPessoaTelefone e tblPessoaEndereco.