Download Banco de Dados II - Curso técnico em informática PDF

TitleBanco de Dados II - Curso técnico em informática
File Size2.3 MB
Total Pages60
Table of Contents
                            CapaJoin14WEB
banco_dados.pdf
                        
Document Text Contents
Page 2

Curso Técnico em Informática

Banco de Dados II

Page 30

29BANCO DE DADOS II

uma consulta simples nesta tabela,
o resultado será o mesmo visuali-
zado na da Tabela 10, mas não é
assim que desejamos o resultado,
mas sim o dos orçamentos agru-
pados com o total de peças que
possui.

SELECT orcamento_idorca-
mento, count( * ) AS Total_Pe-
ças FROM orcamento_peca
GROUP BY orcamento_idorca-
mento

Resultado:

Figura 30: Resultado da consulta do
número de peças por orçamento

Sentiu o poder desta cláusula?
Nesse caso é mostrado o resulta-
do para todos os orçamentos da
tabela. Se quiser, pode filtrar os
orçamentos que deseja visualizar
de forma agrupada, como, por
exemplo:

SELECT orcamento_idorcamen-
to, count ( * ) AS Total_Peças
FROM orcamento_peca
WHERE orcamento_idorca-
mento > 12 GROUP BY orca-
mento_idorcamento

Como você viu, estamos reali-
zando a mesma consulta, só que
desejamos visualizar o resultado
para os orçamentos cujo id é su-
perior a 12.

Resultado:

Figura 31: Resultado da consulta orça-
mentos com id superior a 12

O exemplo anterior mostra a uti-
lização da cláusula GROUP BY
com a cláusula WHERE.
Segundo Machado (2008, p. 350),
“Geralmente, a cláusula GROUP
BY é utilizada em conjunto com
as operações COUNT e AVG.”
Agora, imagine uma consulta para
os orçamentos com o total de pe-
ças superior a 1:

SELECT orcamento_idorcamen-
to, count( * ) AS Total_Peças
FROM orcamento_peca
GROUP BY orcamento_idorca-
mento
HAVING COUNT( * ) >1

Resultado:

Figura 32: Resultado da consulta do
total de peças superior a 1

Note que agora foi utilizada a
cláusula HAVING para fazer o fil-
tro (restrição) da sentença, deter-
minando que só sejam mostrados
os orçamentos cujos totais sejam
superior a 1. É semelhante à cláu-
sula WHERE em um SELECT.
A cláusula HAVING trabalha em
parceria com GROUP BY.
Perceba que existe uma interação
da cláusula GROUP BY com ou-
tras cláusulas SQL, possibilitando
consultas refinadas e eficientes.

Ainda sobre essa integração, tem-
-se que GROUP BY pode ser
aplicada com qualquer outra cláu-
sula trabalhada em nosso estudo.

Acessar dados de duas
tabelas

Ao desenvolver a modelagem de
dados, está-se elaborando o pro-
jeto de banco de dados para uma
solução que servirá a um sistema
de informação para que possa
inserir, atualizar, excluir e princi-
palmente acessar as informações
para que o usuário deste possa
gerir seu negócio. Por menor que
seja seu projeto de banco de da-
dos, sempre haverá tabelas de di-
ferentes natureza e características,
porém algumas se relacionam pela
necessidade de se obter informa-
ções.
Mas como acessar as informações
de duas tabelas? É o que você vai
saber a partir de agora.
A linguagem SQL nos fornece
também recursos para o acesso
simultâneo a tabelas que encon-
tram-se relacionadas, visando
extrair informações encontradas
nelas. Esse recurso é identificado
como junção ou JOIN entre tabe-
las.
Para ilustrar nosso estudo, vamos
utilizar as tabelas clientes e carros,
que se referem respectivamente a
informações dos clientes de uma
oficina mecânica e também aos
carros pertencentes a esses clien-
tes.

Page 31

30 CURSOS TÉCNICOS SENAI

Representando essas tabelas populadas, você verifica:

Figura 33: Tabela clientes oficina mecânica populada

Figura 34: Tabela carros oficina mecânica populada

Observe o relacionamento entre as tabelas a partir do código do cliente
inserido na tabela carros, identificando a quem o veículo pertence. Po-
rém, observe também que se trata do código do cliente, e não seu nome.
Isso faz parte das regras de relacionamento entre tabelas, como você já
estudou.

INNER JOIN

Agora suponha que necessite fazer uma consulta em que tenha que vi-
sualizar os carros, identificados por suas placas, com os seus respectivos
donos (clientes), sendo, neste caso, necessário visualizar o nome e o có-
digo. A SQL disponibiliza o recurso de junção para resolver essa e outras
situações, veja:

SELECT clientes.nome,carros.cliente_idcliente,carros.placa FROM clien-
tes INNER JOIN carros
ON clientes.idcliente = carros.cliente_idcliente

Entendendo a instrução:
Note que estamos selecionando os campos que serão visualizados na
consulta fazendo referência à tabela onde ele se encontra seguido do seu
nome, clientes.nome, carros.cliente, carros.placa, isso porque a consulta
envolve duas tabelas – clientes e carros.

Page 60

59BANCO DE DADOS II

Equipe de Desenvolvimento de Recursos Didáticos

Coordenação de Educação a Distância
Beth Schirmer

Coordenação Projetos EaD
Maristela de Lourdes Alves

Coordenação de Desenvolvimento de Recursos
Didáticos
Gisele Umbelino

Projeto Educacional
Angela Maria Mendes
Israel Braglia

Projeto Gráfico
Daniela de Oliveira Costa
Jordana Paula Schulka
Juliana Vieira de Lima

Design Educacional
Evelin Lediani Bao

Capa, Ilustrações, Tratamento de Imagens
D’imitre Camargo Martins
Diego Fernandes
Luiz Eduardo Meneghel

Diagramação
Letícia Silva Felini

Revisão e Fechamento de Arquivos
Daniela de Oliveira Costa
Juliana Vieira de Lima

Revisão Ortográfica e Normatização
FabriCO

Similer Documents