2. 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
3. Scripts completos utilizados nesta aula
disponíveis no repositório abaixo:
https://github.com/apbertoletti/Pronatec-BD2
5. 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.
6. 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
7. 1) Definição do modelo
conceitual
Cadastro de Clientes
Nome
Data de nascimento
Sexo
CPF
Email
Cadastro de Produtos
Valor
Categoria
Mais vendidos
Vendas realizadas
Data/hora
Loja que vendeu (filial)
19. 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%’
33. 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>
34. 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>
35. 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
37. 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.