Upload
andre-phillip-bertoletti
View
226
Download
0
Embed Size (px)
Citation preview
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
Scripts completos utilizados nesta aula
disponíveis no repositório abaixo:
https://github.com/apbertoletti/Pronatec-BD2
Recordando nosso contexto
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.
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
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)
2) Definição do modelo lógico
3) Definição do modelo físico
Recordar é viver!
INSERT: inserção de registros
Sintaxe:
INSERT INTO
<nome da tabela>
[<lista de colunas>]
VALUES
(<lista de valores>)
INSERT: exemplos
SELECT: seleção de registros
Sintaxe:
SELECT
<lista de colunas>
FROM
<nome da tabela>
[WHERE
<condição de filtro>]
SELECT: exemplos
UPDATE: alteração de registros
Sintaxe:
UPDATE
<nome da tabela>
SET
<nome da coluna> = <novo conteúdo>
[WHERE
<condição de filtro>]
UPDATE: exemplos
DELETE: deleção de registros
Sintaxe:
DELETE FROM
<nome da tabela>
[WHERE
<condição de filtro>]
DELETE: exemplos
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%’
LIKE: exemplos
BETWEEN: filtro de intervalos
Sintaxe:
(...)
WHERE <Coluna> BETWEEN <valor1>
AND <valor2>
BETWEEN: exemplos
TOP: limitando a quantidade de
registros Sintaxe:
SELECT TOP <N>
<Lista de colunas>
FROM
<Tabela>
[WHERE
<condição de filtro>]
TOP: exemplos
COUNT: contando a quantidade
de registros Sintaxe:
SELECT
COUNT(*)
FROM
<Tabela>
[WHERE
<condição de filtro>]
COUNT: exemplos
SUM: somando um determinado
campo Sintaxe:
SELECT
SUM(<nomeDoCampo>)
FROM
<Tabela>
WHERE
<condição de filtro>
SUM: exemplos
AVG: tirando a média um
determinado campo Sintaxe:
SELECT
AVG(<nomeDoCampo>)
FROM
<Tabela>
[WHERE
<condição de filtro>]
AVG: exemplos
DISTINCT: não levar em
consideração os registros
duplicados
Sintaxe:
SELECT
DISTINCT <Lista de colunas>
FROM
<Tabela>
[WHERE
<condição de filtro>]
DISTINCT: exemplos
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>
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>
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
Vamos treinar um pouco?!
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.
Contextos escolhidos por
cada aluno
Scripts completos utilizados nesta aula
disponíveis na URL abaixo:
https://github.com/apbertoletti/Pronatec-BD2
Por hoje é só...
Bora estudar
e praticar!