SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
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!

Contenu connexe

En vedette

En vedette (6)

Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12
 
Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11
 
Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8
 
Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10
 
Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9
 
Política nas mídias sociais
Política nas mídias sociaisPolítica nas mídias sociais
Política nas mídias sociais
 

Similaire à Banco de Dados II - Unimep/Pronatec - Aula 6

Banco dados lj
Banco dados ljBanco dados lj
Banco dados ljCarol Luz
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaLeinylson Fontinele
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasRodrigo Kiyoshi Saito
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Emiliano Barbosa
 
Tema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taTema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taPedro A. Uamusse
 
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docx
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docxmodulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docx
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docxAnaAlmeida462833
 
Banco de Dados (parte 02)
Banco de Dados (parte 02)Banco de Dados (parte 02)
Banco de Dados (parte 02)Alex Camargo
 
Polígrafo Tuiuti - Módulo 3
Polígrafo Tuiuti - Módulo 3Polígrafo Tuiuti - Módulo 3
Polígrafo Tuiuti - Módulo 3Micheli Wink
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dadosmgoberto
 
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...Fabrício Catae
 

Similaire à Banco de Dados II - Unimep/Pronatec - Aula 6 (20)

Banco dados lj
Banco dados ljBanco dados lj
Banco dados lj
 
Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na prática
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelas
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
Tema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taTema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_ta
 
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docx
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docxmodulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docx
modulo-15-sql-criar-e-manipular-tabelas1-2-flipbook-pdf.docx
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
Banco de Dados (parte 02)
Banco de Dados (parte 02)Banco de Dados (parte 02)
Banco de Dados (parte 02)
 
Polígrafo Tuiuti - Módulo 3
Polígrafo Tuiuti - Módulo 3Polígrafo Tuiuti - Módulo 3
Polígrafo Tuiuti - Módulo 3
 
Access vba
Access vbaAccess vba
Access vba
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dados
 
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...
TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Ban...
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 

Plus de André Phillip Bertoletti

Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorAndré Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 18
Engenharia de Software - Unimep/Pronatec - Aula 18Engenharia de Software - Unimep/Pronatec - Aula 18
Engenharia de Software - Unimep/Pronatec - Aula 18André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 17
Engenharia de Software - Unimep/Pronatec - Aula 17Engenharia de Software - Unimep/Pronatec - Aula 17
Engenharia de Software - Unimep/Pronatec - Aula 17André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 15
Engenharia de Software - Unimep/Pronatec - Aula 15Engenharia de Software - Unimep/Pronatec - Aula 15
Engenharia de Software - Unimep/Pronatec - Aula 15André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 14
Engenharia de Software - Unimep/Pronatec - Aula 14Engenharia de Software - Unimep/Pronatec - Aula 14
Engenharia de Software - Unimep/Pronatec - Aula 14André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 8
Engenharia de Software - Unimep/Pronatec - Aula 8Engenharia de Software - Unimep/Pronatec - Aula 8
Engenharia de Software - Unimep/Pronatec - Aula 8André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 7
Engenharia de Software - Unimep/Pronatec - Aula 7Engenharia de Software - Unimep/Pronatec - Aula 7
Engenharia de Software - Unimep/Pronatec - Aula 7André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 6
Engenharia de Software - Unimep/Pronatec - Aula 6Engenharia de Software - Unimep/Pronatec - Aula 6
Engenharia de Software - Unimep/Pronatec - Aula 6André Phillip Bertoletti
 

Plus de André Phillip Bertoletti (20)

Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
 
Comunidade Locais de TI
Comunidade Locais de TIComunidade Locais de TI
Comunidade Locais de TI
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
The clean coder
The clean coder The clean coder
The clean coder
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
 
Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9
 
Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7
 
Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6
 
Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4
 
Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3
 
Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2
 
Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1
 
Engenharia de Software - Unimep/Pronatec - Aula 18
Engenharia de Software - Unimep/Pronatec - Aula 18Engenharia de Software - Unimep/Pronatec - Aula 18
Engenharia de Software - Unimep/Pronatec - Aula 18
 
Engenharia de Software - Unimep/Pronatec - Aula 17
Engenharia de Software - Unimep/Pronatec - Aula 17Engenharia de Software - Unimep/Pronatec - Aula 17
Engenharia de Software - Unimep/Pronatec - Aula 17
 
Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16
 
Engenharia de Software - Unimep/Pronatec - Aula 15
Engenharia de Software - Unimep/Pronatec - Aula 15Engenharia de Software - Unimep/Pronatec - Aula 15
Engenharia de Software - Unimep/Pronatec - Aula 15
 
Engenharia de Software - Unimep/Pronatec - Aula 14
Engenharia de Software - Unimep/Pronatec - Aula 14Engenharia de Software - Unimep/Pronatec - Aula 14
Engenharia de Software - Unimep/Pronatec - Aula 14
 
Engenharia de Software - Unimep/Pronatec - Aula 8
Engenharia de Software - Unimep/Pronatec - Aula 8Engenharia de Software - Unimep/Pronatec - Aula 8
Engenharia de Software - Unimep/Pronatec - Aula 8
 
Engenharia de Software - Unimep/Pronatec - Aula 7
Engenharia de Software - Unimep/Pronatec - Aula 7Engenharia de Software - Unimep/Pronatec - Aula 7
Engenharia de Software - Unimep/Pronatec - Aula 7
 
Engenharia de Software - Unimep/Pronatec - Aula 6
Engenharia de Software - Unimep/Pronatec - Aula 6Engenharia de Software - Unimep/Pronatec - Aula 6
Engenharia de Software - Unimep/Pronatec - Aula 6
 

Banco de Dados II - Unimep/Pronatec - Aula 6

  • 1. Unimep/Pronatec 3° Semestre AULA 6 - Prof. André Bertoletti - apbertolet@unimep.br Banco de Dados II
  • 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)
  • 8. 2) Definição do modelo lógico
  • 9. 3) Definição do modelo físico
  • 11. INSERT: inserção de registros Sintaxe: INSERT INTO <nome da tabela> [<lista de colunas>] VALUES (<lista de valores>)
  • 13. SELECT: seleção de registros Sintaxe: SELECT <lista de colunas> FROM <nome da tabela> [WHERE <condição de filtro>]
  • 15. UPDATE: alteração de registros Sintaxe: UPDATE <nome da tabela> SET <nome da coluna> = <novo conteúdo> [WHERE <condição de filtro>]
  • 17. DELETE: deleção de registros Sintaxe: DELETE FROM <nome da tabela> [WHERE <condição de filtro>]
  • 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%’
  • 21. BETWEEN: filtro de intervalos Sintaxe: (...) WHERE <Coluna> BETWEEN <valor1> AND <valor2>
  • 23. TOP: limitando a quantidade de registros Sintaxe: SELECT TOP <N> <Lista de colunas> FROM <Tabela> [WHERE <condição de filtro>]
  • 25. COUNT: contando a quantidade de registros Sintaxe: SELECT COUNT(*) FROM <Tabela> [WHERE <condição de filtro>]
  • 27. SUM: somando um determinado campo Sintaxe: SELECT SUM(<nomeDoCampo>) FROM <Tabela> WHERE <condição de filtro>
  • 29. AVG: tirando a média um determinado campo Sintaxe: SELECT AVG(<nomeDoCampo>) FROM <Tabela> [WHERE <condição de filtro>]
  • 31. DISTINCT: não levar em consideração os registros duplicados Sintaxe: SELECT DISTINCT <Lista de colunas> FROM <Tabela> [WHERE <condição de filtro>]
  • 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
  • 36. Vamos treinar um pouco?!
  • 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.
  • 39. Scripts completos utilizados nesta aula disponíveis na URL abaixo: https://github.com/apbertoletti/Pronatec-BD2
  • 40. Por hoje é só... Bora estudar e praticar!