Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Banco de Dados II
Aula 02 Prof. Diemesleno Souza Carvalho
diemesleno@iftm.edu.br
http://www.diemesleno.com.br
Na aula passada vimos...
Na aula passada vimos...
- Sistemas de Gerenciamento de Banco de Dados (SGBD):
- Arquitetura;
- Segurança;
- Concorrência;
- Recuperação após falha;
- Gerenciamento de Transações.
Na aula de hoje veremos...
Na aula de hoje veremos...
- Linguagens de Consulta
Linguagens de Consulta
Linguagens de Consulta
Consultar dados em uma base de dados é o propósito final 
da utilização de um banco de dados.
Mas para que possamos fazer isso devemos:
- Criar um banco de dados;
- Construir as tabelas dentro deste banco de dados;
- Popular as tabelas com alguns dados;
Linguagens de Consulta
Consultar dados em uma base de dados é o propósito final 
da utilização de um banco de dados.
Mas para que possamos fazer isso devemos:
- Criar um banco de dados;
- Construir as tabelas dentro deste banco de dados;
- Popular as tabelas com alguns dados;
Linguagens de Consulta
1) Baseado na nota fiscal ao
lado, aplique a normalização 
de dados (1º, 2º e 3º Formas
Normais);
2) Crie os diagramas ER 
(Entidade-Relacionamento)
e crie o banco de dados 
chamado 'normalizacao01';
3) Adicione dados nas tabelas
criadas, respeitando os 
relacionamentos.
OBS: Recomenda-se a 
utilização da ferramenta
MySQL Workbench.
Linguagens de Consulta
Após a noralização terminada, deveríamos ter algo
semelhante a este diagrama.
Linguagens de Consulta
Neste pr imeiro momento iremos traba lhar com a 
ferramenta MySQL Workbench.
Linguagens de Consulta
Em aulas futuras, iremos trabalhar também com o pgAdmin 
para o PostgreSQL.
Linguagens de Consulta
Desta forma a ideia é que aprendam a utilizar as principais 
ferramentas do mercado para desenvolvimento.
Linguagens de Consulta
Abra o MySQL Workbench.
Linguagens de Consulta
Caso não tenha uma conexão criada, crie. Na imagem abaixo 
tenho uma conexão chamada 'Local' para o usuário 'aluno'
Linguagens de Consulta
Com a conexão criada, clique na mesma para que o Editor 
SQL seja aberto.
Linguagens de Consulta
Repare que nos schemas mostrados, o banco de dados que 
estamos utilizando 'normalizacao01' está selecionado.
Linguagens de Consulta
Repare que nos schemas mostrados, o banco de dados que 
estamos utilizando 'normalizacao01' está selecionado.
Para selecionar qualquer banco de dados, 
basta dar um clique duplo no nome do 
mesmo.
Linguagens de Consulta
- Consultas básicas
Linguagens de Consulta
- Consultas básicas
A estrutura básica de uma expressão de consulta SQL 
consiste em duas cláusulas: SELECT e FROM
Linguagens de Consulta
- Consultas básicas
A estrutura básica de uma expressão de consulta SQL 
consiste em duas cláusulas: SELECT e FROM
SELECT <lista-de-colunas> FROM <lista-de-tabelas>;
Linguagens de Consulta
- Consultas básicas
A estrutura básica de uma expressão de consulta SQL 
consiste em duas cláusulas: SELECT e FROM
A cláusula SELECT serve para definir as colunas que terão 
seus va l ores ex ib i dos na consu l ta e a o rdem de 
apresentação dessas colunas.
A cláusula FROM, por sua vez, serve para indicar as tabelas 
de origem das referidas colunas.
SELECT <lista-de-colunas> FROM <lista-de-tabelas>;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome, endereco, cpf e telefone da tabela 
clientes.
SELECT id, nome, endereco, cpf, telefone FROM clientes;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome, endereco, cpf e telefone da tabela 
clientes.
SELECT id, nome, endereco, cpf, telefone FROM clientes;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome, endereco, cpf e telefone da tabela 
clientes.
OBS: Digite a consulta no Editor SQL do MySQL Workbench e
execute clicando no botão 'execute'.
SELECT id, nome, endereco, cpf, telefone FROM clientes;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL abaixo, estamos então selecionando as 
colunas: id, nome, endereco, cpf e telefone da tabela 
clientes.
Linguagens de Consulta
- Consultas básicas
Faça o mesmo com as tabelas:
produtos;
notasFiscais;
produtosNotasFiscais;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome e preco da tabela produtos.
SELECT id, nome, preco FROM produtos;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome e preco da tabela produtos.
SELECT id, nome, preco FROM produtos;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome e preco da tabela produtos.
SELECT id, nome, preco FROM produtos;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, nome e preco da tabela produtos.
SELECT id, nome, preco FROM produtos;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idCliente, dataEmissao, e valor da tabela 
notasFiscais.
SELECT id, idCliente, dataEmissao, valor FROM notasFiscais;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idCliente, dataEmissao, e valor da tabela 
notasFiscais.
SELECT id, idCliente, dataEmissao, valor FROM notasFiscais;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idCliente, dataEmissao, e valor da tabela 
notasFiscais.
SELECT id, idCliente, dataEmissao, valor FROM notasFiscais;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idNotaFiscal, idProduto, e quantidade da tabela 
produtosNotaFiscal.
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idNotaFiscal, idProduto, e quantidade da tabela 
produtosNotaFiscal.
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal;
Linguagens de Consulta
- Consultas básicas
Na instrução SQL acima, estamos então selecionando as 
colunas: id, idNotaFiscal, idProduto, e quantidade da tabela 
produtosNotaFiscal.
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal;
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Podemos dar 'apelidos' para as colunas da nossa consulta, 
utilizando a cláusula AS.
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Na consulta abaixo, estamos colocando aliases para as 3 
colunas da tabela produtos.
SELECT id AS Código, nome AS Nome, preco AS Preço FROM produtos;
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Na consulta abaixo, estamos colocando aliases para as 3 
colunas da tabela produtos.
SELECT id AS Código, nome AS Nome, preco AS Preço FROM produtos;
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Na consulta abaixo, estamos colocando aliases para as 3 
colunas da tabela produtos.
SELECT id AS Código, nome AS Nome, preco AS Preço FROM produtos;
Linguagens de Consulta
- Consultas básicas - com alias (apelidos)
Na consulta abaixo, estamos colocando aliases para as 3 
colunas da tabelaprodutos.
SELECT id AS Código, nome AS Nome, preco AS Preço FROM produtos;
Linguagens de Consulta
- Consultas básicas
Podemos também selecionar todas as colunas de uma tabela 
utilizando o caractere asterisco '*'.
Linguagens de Consulta
- Consultas básicas
Podemos também selecionar todas as colunas de uma tabela 
utilizando o caractere asterisco '*'.
SELECT * FROM produtos;
Linguagens de Consulta
- Consultas básicas
Podemos também selecionar todas as colunas de uma tabela 
utilizando o caractere asterisco '*'.
SELECT * FROM produtos;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT <lista-de-colunas> FROM <lista-de-tabelas> ORDER BY <lista-de-
colunas>;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
A cláusula ORDER BY objetiva estabelecer a ordem de 
apresentação dos registros em uma consulta SQL.
Ela deve ser incluída no código da consulta após as cláusulas 
SELECT e FROM. 
ORDER BY normalmente é a última cláusula de uma consulta.
SELECT <lista-de-colunas> FROM <lista-de-tabelas> ORDER BY <lista-de-
colunas>;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal 
ORDER BY idPdoduto;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal 
ORDER BY idPdoduto;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT id, idNotaFiscal, idProduto, quantidade FROM produtosNotaFiscal 
ORDER BY quantidade;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
A ordenação pode ser ainda crescente ou decrescente, 
adicionando os parâmetros ASC ou DESC.
OBS: Por padrão as ordenações são crescentes. (ASC); 
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal DESC;
Linguagens de Consulta
- Consultas com cláusula ORDER BY
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal DESC;
Linguagens de Consulta
- Consultas com limite
Linguagens de Consulta
- Consultas com limite
Conforme pudemos notar, até o momento, em todas as 
consultas que fizemos trouxemos todos os dados.
Portanto, se uma tabela tiver 10 registros, trará os 10, da 
mesma forma que se tiver 10 milhões de registros, trará 
todos eles.
Linguagens de Consulta
- Consultas com limite
Podemos adicionar a cláusula LIMIT N, para limitar a 
quantidade de registros que queremos que a consulta traga, 
onde N é o número de registros a serem trazidos.
Linguagens de Consulta
- Consultas com limite
Na consulta acima, estamos limitando os resultados a 15. 
Portando se a tabela em questão tiver somente 8 registros, 
trará apenas 8. Se tiver 500, trará somente os 15 primeiros.
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal LIMIT 15;
Linguagens de Consulta
- Consultas com limite
Na consulta acima, estamos limitando os resultados a 15. 
Portando se a tabela em questão tiver somente 8 registros, 
trará apenas 8. Se tiver 500, trará somente os 15 primeiros.
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal LIMIT 15;
Linguagens de Consulta
- Consultas com limite
OBS: Podemos utilizar praticamente todas as cláusulas em 
conjunto, para filtrarmos os resultados de acordo com a 
necessidade.
Linguagens de Consulta
- Consultas com limite
Na consulta acima, estamos trazendo desta vez, os últimos 
15 registros da tabela.
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal DESC LIMIT 15;
Linguagens de Consulta
- Consultas com limite
Na consulta acima, estamos trazendo desta vez, os últimos 
15 registros da tabela.
SELECT * FROM produtosNotaFiscal ORDER BY idNotaFiscal DESC LIMIT 15;
Linguagens de Consulta
- Consultas com cláusula WHERE
Linguagens de Consulta
- Consultas com cláusula WHERE
A cláusula WHERE filtra registros de colsultas, permitindo-
nos exibir alguns registros enquanto deixamos outros de 
fora da consulta.
Linguagens de Consulta
- Consultas com cláusula WHERE
SELECT <lista-de-colunas> FROM <lista-de-tabelas> WHERE <condições>;
Linguagens de Consulta
- Consultas com cláusula WHERE
A cláusula WHERE deve estar sempre após o SELECT e FROM. 
Quando houver ORDER BY o WHERE deverá ser posto antes 
dele, conforme:
SELECT <lista-de-colunas> FROM <lista-de-tabelas> WHERE <condições>;
SELECT <lista-de-colunas> FROM <lista-de-tabelas> WHERE <condições> 
ORDER BY <lista-de-colunas>;
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtosNotaFiscal onde o id seja igual a 666.
SELECT * FROM produtosNotaFiscal WHERE id = 666;
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtosNotaFiscal onde o id seja igual a 666.
SELECT * FROM produtosNotaFiscal WHERE id = 666;
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtosNotaFiscal onde o idProduto seja igual a 5.
SELECT * FROM produtosNotaFiscal WHERE idProduto = 5;
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtosNotaFiscal onde o idProduto seja igual a 5.
SELECT * FROM produtosNotaFiscal WHERE idProduto = 5;
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtos onde o nome seja igual a "Produto 15".
SELECT * FROM produtos WHERE nome = "Produto 15";
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtos onde o nome seja igual a "Produto 15".
SELECT * FROM produtos WHERE nome = "Produto 15";
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtos onde o nome seja igual a "Produto 15".
OBS: Note que só será encontrado caso seja exatamente o 
que foi colocado entre as aspas.
SELECT * FROM produtos WHERE nome = "Produto 15";
Linguagens de Consulta
- Consultas com cláusula WHERE
Na consulta acima, estamos trazendo todos os dados da 
tabela produtos onde o nome seja igual a "Produto".
OBS: Como não existe nenhum produto com nome igual a 
"Produto", a consulta não retorna nada.
SELECT * FROM produtos WHERE nome = "Produto";
Linguagens de Consulta
- Consultas com cláusula WHERE - LIKE
Linguagens de Consulta
- Consultas com cláusula WHERE - LIKE
Podemos realizar consultas com textos parciais utilizando a 
cláusula LIKE.
Linguagens de Consulta
- Consultas com cláusula WHERE - LIKE
Na consulta abaixo, selecionamos todas as colunas da tabela 
produtos onde o nome seja como o padrão "Produto 1%".
SELECT * FROM produtos WHERE nome LIKE "Produto 1%";
Linguagens de Consulta
- Consultas com cláusula WHERE - LIKE
Na consulta abaixo, selecionamos todas as colunas da tabela 
produtos onde o nome seja como o padrão "Produto 1%".
SELECT * FROM produtos WHERE nome LIKE "Produto 1%";
Linguagens de Consulta
- Consultas com cláusula WHERE - LIKE
Na consulta abaixo, selecionamos todas as colunas da tabela 
produtos onde o nome seja como o padrão "Produto 1%".
SELECT * FROM produtos WHERE nome LIKE "Produto 1%";
Repare que a consulta trouxe todos 
os dados onde o nome começava 
com "Produto 1...", conforme 
padrão solicitado.
Linguagens de Consulta
- Consultas com cláusula WHERE - AND
Linguagens deConsulta
- Consultas com cláusula WHERE - AND
Podemos concatenar vários filtros adicionando o parâmetro 
AND.
Linguagens de Consulta
- Consultas com cláusula WHERE - AND
Na consulta abaixo, selecionamos todas as colunas da tabela 
produtos onde o id seja maior que 10 e menor que 50.
SELECT * FROM produtos WHERE id > 10 AND id < 50;
Linguagens de Consulta
- Consultas com cláusula WHERE - AND
Na consulta abaixo, selecionamos todas as colunas da tabela 
produtos onde o id seja maior que 10 e menor que 50.
SELECT * FROM produtos WHERE id > 10 AND id < 50;
Linguagens de Consulta
- Consultas com funções de agrupamento
Linguagens de Consulta
- Consultas com funções de agrupamento
A linguagem SQL conta com várias funções para consultas. 
Essas funções servem para realizar operações e simplificar 
algumas ações.
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos contando quantos registros 
existem na tabela produtos.
SELECT COUNT(*) FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos contando quantos registros 
existem na tabela produtos.
SELECT COUNT(*) FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos contando quantos registros 
existem na tabela produtos onde os nomes dos produtos 
tenham o padrão "Produto %6%".
SELECT COUNT(*) FROM produtos WHERE nome LIKE "Produto %6%;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos contando quantos registros 
existem na tabela produtos onde os nomes dos produtos 
tenham o padrão "Produto %6%".
SELECT COUNT(*) FROM produtos WHERE nome LIKE "Produto %6%;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos fazendo uma contagem de 
q u a n t o s p r o d u t o s f o r a m v e n d i d o s f a z e n d o u m 
agrupamento por idProduto.
SELECT idProduto, COUNT(*) AS Quantidade_Produtos FROM 
produtosNotaFiscal GROUP BY idProduto;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos fazendo uma contagem de 
q u a n t o s p r o d u t o s f o r a m v e n d i d o s f a z e n d o u m 
agrupamento por idProduto.
SELECT idProduto, COUNT(*) AS Quantidade_Produtos FROM 
produtosNotaFiscal GROUP BY idProduto;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos buscando o maior preço entre 
os produtos cadastrados.
SELECT MAX(preco) AS Maior_Preço FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos buscando o maior preço entre 
os produtos cadastrados.
SELECT MAX(preco) AS Maior_Preço FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos buscando o menor preço entre 
os produtos cadastrados.
SELECT MIN(preco) AS Menor_Preço FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos buscando o menor preço entre 
os produtos cadastrados.
SELECT MIN(preco) AS Menor_Preço FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos fazendo um somatório de 
todos os valores dos produtos cadastrados.
SELECT SUM(preco) AS Valor_Total FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos fazendo um somatório de 
todos os valores dos produtos cadastrados.
SELECT SUM(preco) AS Valor_Total FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos solicitando a média dos valores 
dos produtos cadastrados.
SELECT AVG(preco) AS Valor_Médio FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos solicitando a média dos valores 
dos produtos cadastrados.
SELECT AVG(preco) AS Valor_Médio FROM produtos;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos listando todas as notas fiscais 
emitidas, separando em colunas diferentes o dia, o mês e o 
ano de emissão.
SELECT id, idCliente, valor, DAY(dataEmissao) AS dia_emussão, 
MONTH(dataEmissao) AS mês_emissão, YEAR(dataEmissao) AS ano_emissão 
FROM notasFiscais;
Linguagens de Consulta
- Consultas com funções de agrupamento
Na consulta abaixo, estamos listando todas as notas fiscais 
emitidas, separando em colunas diferentes o dia, o mês e o 
ano de emissão.
SELECT id, idCliente, valor, DAY(dataEmissao) AS dia_emussão, 
MONTH(dataEmissao) AS mês_emissão, YEAR(dataEmissao) AS ano_emissão 
FROM notasFiscais;
Linguagens de Consulta
- Consultas com mais de uma tabela
Linguagens de Consulta
- Consultas com mais de uma tabela
Todas as consultas realizadas até aqui envolveram sempre 
uma única tabela.
Sabemos porém, que nosso banco de dados possu i 
relacionamento entre tabelas e todo profissional de 
informática que trabalha com desenvolvimento de sistemas, 
normalmente, elebora consultas com mais de uma tabela 
simultaneamente.
Linguagens de Consulta
- Consultas com mais de uma tabela
Conforme podemos ver, na tabela notasFiscais possuímos 
um relacionamento com a tabela clientes, pelo idCliente 
presente nesta tabela.
Linguagens de Consulta
- Consultas com mais de uma tabela
Sabemos que na tabela clientes, temos o nome do cliente, 
além do id e outros dados.
Linguagens de Consulta
- Consultas com mais de uma tabela
Sabemos que na tabela clientes, temos o nome do cliente, 
além do id e outros dados.
Já que na tabela notasFiscais temos o idCliente que se 
relaciona com a tabela clientes pelo id presente nesta 
tabela, podemos realizar uma consulta buscando dados em 
ambas tabelas.
Linguagens de Consulta
- Consultas com mais de uma tabela
Na consulta abaixo, estamos buscando todas as colunas da 
tabela notasFiscais, apresentando no lugar de idCliente o 
nome do próprio, buscado na tabela clientes, onde o 
idCliente da tabela de notasFiscais corresponda ao id da 
tabela clientes.
SELECT nf.id AS ID, c.nome AS Cliente, nf.dataEmissao AS Emissão, nf.valor AS 
Valor FROM notasFiscais AS nf, clientes AS c WHERE nf.idCliente = c.id;
Linguagens de Consulta
- Consultas com mais de uma tabela
Na consulta abaixo, estamos buscando todas as colunas da 
tabela notasFiscais, apresentando no lugar de idCliente o 
nome do próprio, buscado na tabela clientes, onde o 
idCliente da tabela de notasFiscais corresponda ao id da 
tabela clientes.
SELECT nf.id AS ID, c.nome AS Cliente, nf.dataEmissao AS Emissão, nf.valor AS 
Valor FROM notasFiscais AS nf, clientes AS c WHERE nf.idCliente = c.id;
Linguagens de Consulta
Tudo o que vimos nesta aula pode ser aplicada em conjunto, 
mixando as cláusulas para chegar no resultado da consulta 
pretendida.
Existem muitos outros recursos, funções e ações para 
ajudar nas consultas e na documentação[1] oficial pode-se 
encontrar informações mais afundo.
[1]http://dev.mysql.com/doc/refman/5.7/en/
Banco de Dados II
Aula 02 Prof. Diemesleno Souza Carvalho
diemesleno@iftm.edu.br
http://www.diemesleno.com.br
Exercício
1) Baseado na última consulta, onde trabalhamos com mais de 1 
tabela (notasFiscais e clientes); Faça uma consulta na tabela 
produtosNotaFiscal e faça aparecer o nome do cliente para quem 
foi emitida a nota fiscal, a quantidade de produtos descritos na 
nota fiscal, a data de emissão da nota fiscal e o valor da nota 
fiscal, conforme imagem abaixo.

Mais conteúdos dessa disciplina