40
Unimep/Pronatec 3° Semestre AULA 6 - Prof. André Bertoletti - [email protected] Banco de Dados II

Banco de Dados II - Unimep/Pronatec - Aula 6

Embed Size (px)

Citation preview

Page 1: Banco de Dados II - Unimep/Pronatec - Aula 6

Unimep/Pronatec

3° Semestre

AULA 6

- Prof. André Bertoletti -

[email protected]

Banco de Dados II

Page 2: Banco de Dados II - Unimep/Pronatec - Aula 6

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

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

Recordando nosso contexto

Page 5: Banco de Dados II - Unimep/Pronatec - Aula 6

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

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

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)

Page 8: Banco de Dados II - Unimep/Pronatec - Aula 6

2) Definição do modelo lógico

Page 9: Banco de Dados II - Unimep/Pronatec - Aula 6

3) Definição do modelo físico

Page 10: Banco de Dados II - Unimep/Pronatec - Aula 6

Recordar é viver!

Page 11: Banco de Dados II - Unimep/Pronatec - Aula 6

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

INSERT: exemplos

Page 13: Banco de Dados II - Unimep/Pronatec - Aula 6

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

SELECT: exemplos

Page 15: Banco de Dados II - Unimep/Pronatec - Aula 6

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

UPDATE: exemplos

Page 17: Banco de Dados II - Unimep/Pronatec - Aula 6

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

DELETE: exemplos

Page 19: Banco de Dados II - Unimep/Pronatec - Aula 6

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

LIKE: exemplos

Page 21: Banco de Dados II - Unimep/Pronatec - Aula 6

BETWEEN: filtro de intervalos

Sintaxe:

(...)

WHERE <Coluna> BETWEEN <valor1>

AND <valor2>

Page 22: Banco de Dados II - Unimep/Pronatec - Aula 6

BETWEEN: exemplos

Page 23: Banco de Dados II - Unimep/Pronatec - Aula 6

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

TOP: exemplos

Page 25: Banco de Dados II - Unimep/Pronatec - Aula 6

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

COUNT: exemplos

Page 27: Banco de Dados II - Unimep/Pronatec - Aula 6

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

SUM: exemplos

Page 29: Banco de Dados II - Unimep/Pronatec - Aula 6

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

AVG: exemplos

Page 31: Banco de Dados II - Unimep/Pronatec - Aula 6

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

DISTINCT: exemplos

Page 33: Banco de Dados II - Unimep/Pronatec - Aula 6

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

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

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

Vamos treinar um pouco?!

Page 37: Banco de Dados II - Unimep/Pronatec - Aula 6

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

Contextos escolhidos por

cada aluno

Page 39: Banco de Dados II - Unimep/Pronatec - Aula 6

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

Por hoje é só...

Bora estudar

e praticar!