Download - Banco de Dados II - Unimep/Pronatec - Aula 6
![Page 2: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/2.jpg)
Agenda de hoje
Nosso repositório de scripts
Recordando nosso contexto e últimos
comandos
Comandos de distinção e agrupamento
Exercícios de fixação
![Page 3: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/3.jpg)
Scripts completos utilizados nesta aula
disponíveis no repositório abaixo:
https://github.com/apbertoletti/Pronatec-BD2
![Page 4: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/4.jpg)
Recordando nosso contexto
![Page 5: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/5.jpg)
Recordando a necessidade
Uma loja de materiais esportivos (roupas,
tênis, equipamentos, etc) precisa manter
um banco de dados dos seus clientes,
produtos e vendas realizadas. Além da
necessidade de se manter seus cadastros
de forma organizada, pretende-se também
levantar algumas estatísticas básicas do
perfil de seus clientes, produtos e também
das vendas por período.
![Page 6: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/6.jpg)
Etapas para a definição do
modelo de dados
1) Definição do modelo conceitual
Detalhes mais abstratos
2) Definição do modelo lógico
Normalização (evitar anomalia de dados
entre as entidades)
Relacionamentos (definir PKs, FKs, etc)
Cardinalidade (1..N, 1..1, N..N, etc)
3) Definição do modelo físico
Scripts para gerar os objetos de BD
![Page 7: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/7.jpg)
1) Definição do modelo
conceitual
Cadastro de Clientes Nome
Data de nascimento
Sexo
CPF
Cadastro de Produtos Valor
Categoria
Mais vendidos
Vendas realizadas Data/hora
Loja que vendeu (filial)
![Page 8: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/8.jpg)
2) Definição do modelo lógico
![Page 9: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/9.jpg)
3) Definição do modelo físico
![Page 10: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/10.jpg)
Recordar é viver!
![Page 11: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/11.jpg)
INSERT: inserção de registros
Sintaxe:
INSERT INTO
<nome da tabela>
[<lista de colunas>]
VALUES
(<lista de valores>)
![Page 12: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/12.jpg)
INSERT: exemplos
![Page 13: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/13.jpg)
SELECT: seleção de registros
Sintaxe:
SELECT
<lista de colunas>
FROM
<nome da tabela>
[WHERE
<condição de filtro>]
![Page 14: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/14.jpg)
SELECT: exemplos
![Page 15: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/15.jpg)
UPDATE: alteração de registros
Sintaxe:
UPDATE
<nome da tabela>
SET
<nome da coluna> = <novo conteúdo>
[WHERE
<condição de filtro>]
![Page 16: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/16.jpg)
UPDATE: exemplos
![Page 17: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/17.jpg)
DELETE: deleção de registros
Sintaxe:
DELETE FROM
<nome da tabela>
[WHERE
<condição de filtro>]
![Page 18: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/18.jpg)
DELETE: exemplos
![Page 19: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/19.jpg)
LIKE: filtro aproximado
Sintaxe com conteúdo no fim:
(...)
WHERE <Coluna> LIKE ‘%conteúdo’
Sintaxe com conteúdo no início:
(...)
WHERE <Coluna> LIKE ‘conteúdo%’
Sintaxe com conteúdo no inicio, meio ou fim:
(...)
WHERE <Coluna> LIKE ‘%conteúdo%’
![Page 20: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/20.jpg)
LIKE: exemplos
![Page 21: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/21.jpg)
BETWEEN: filtro de intervalos
Sintaxe:
(...)
WHERE <Coluna> BETWEEN <valor1>
AND <valor2>
![Page 22: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/22.jpg)
BETWEEN: exemplos
![Page 23: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/23.jpg)
TOP: limitando a quantidade de
registros Sintaxe:
SELECT TOP <N>
<Lista de colunas>
FROM
<Tabela>
[WHERE
<condição de filtro>]
![Page 24: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/24.jpg)
TOP: exemplos
![Page 25: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/25.jpg)
COUNT: contando a quantidade
de registros Sintaxe:
SELECT
COUNT(*)
FROM
<Tabela>
[WHERE
<condição de filtro>]
![Page 26: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/26.jpg)
COUNT: exemplos
![Page 27: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/27.jpg)
SUM: somando um determinado
campo Sintaxe:
SELECT
SUM(<nomeDoCampo>)
FROM
<Tabela>
WHERE
<condição de filtro>
![Page 28: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/28.jpg)
SUM: exemplos
![Page 29: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/29.jpg)
AVG: tirando a média um
determinado campo Sintaxe:
SELECT
AVG(<nomeDoCampo>)
FROM
<Tabela>
[WHERE
<condição de filtro>]
![Page 30: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/30.jpg)
AVG: exemplos
![Page 31: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/31.jpg)
DISTINCT: não levar em
consideração os registros
duplicados
Sintaxe:
SELECT
DISTINCT <Lista de colunas>
FROM
<Tabela>
[WHERE
<condição de filtro>]
![Page 32: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/32.jpg)
DISTINCT: exemplos
![Page 33: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/33.jpg)
GROUP BY: agrupando dados por
valore iguais Sintaxe:
SELECT
<Lista de colunas agrupadas>,
[<Funções de agregação de dados>]
FROM
<Tabela>
[WHERE
<condição de filtro>]
GROUP BY
<Lista de colunas agrupadas>
![Page 34: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/34.jpg)
GROUP BY: exemplos
Sintaxe:
SELECT
<Lista de colunas agrupadas>,
[<Funções de agregação de dados>]
FROM
<Tabela>
[WHERE
<condição de filtro>]
GROUP BY
<Lista de colunas agrupadas>
![Page 35: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/35.jpg)
Principal diferença entre
DISTINCT e o GROUP BY
A diferença entre os algoritmos é que
o GROUP BY permite funções de
agregação como um passo adicional
enquanto que o DISTINCT não
permite.
DISTINCT: mais rápido, menos
recursos
GROUP BY: menos rápido, mais
recursos
![Page 36: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/36.jpg)
Vamos treinar um pouco?!
![Page 37: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/37.jpg)
Lição pra casa (valendo solzinho)
Pensar num contexto qualquer e criar os
modelos conceituais, lógicos e físicos deste
banco de dados
Inserir diversos registros de exemplo em suas
tabelas (comando INSERT)
Criar ao menos 3 (três) exemplos de cada um
dos comandos que já aprendemos:
SELECT, UPDATE, DELETE, LIKE, BETWEEN, TOP,
COUNT, SUM, AVG, DISTINCT e GROUP BY
Prazo de entrega: 28/Set (próxima aula). Traga
seus modelos e scripts para apresentar à todos.
![Page 38: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/38.jpg)
Contextos escolhidos por
cada aluno
![Page 39: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/39.jpg)
Scripts completos utilizados nesta aula
disponíveis na URL abaixo:
https://github.com/apbertoletti/Pronatec-BD2
![Page 40: Banco de Dados II - Unimep/Pronatec - Aula 6](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58edf3f21a28ab534c8b456d/html5/thumbnails/40.jpg)
Por hoje é só...
Bora estudar
e praticar!