Banco de Dados II - Unimep/Pronatec - Aula 6

Preview:

Citation preview

Unimep/Pronatec

3° Semestre

AULA 6

- Prof. André Bertoletti -

apbertolet@unimep.br

Banco de Dados II

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

Email

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!