Administrador de Banco de Dados2

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 348

Administrador de Banco de

Dados
Unidade de competência Período Carga horária

UC1: Instalar e configurar o


08/11/2021 a 10/12/2021 72 horas
sistema de banco de dados

UC2: Realizar o monitoramento


do uso e desempenho dos 13/01/2022 a 24/01/2022 48 horas
sistemas de banco de dados
UC3: Realizar a manutenção e
25/01/2022 a 21/02/2022 60 horas
otimização do banco de dados
UC4: Projeto Integrador
Administração de Banco de 22/02/2022 a 07/03/2022 20 horas
dados
  Total 200 horas
Para onde você vai?
Objetivo geral

Formar profissionais com


competências para atuar e
intervir em seu campo de
trabalho, com foco em
resultados.
Para onde você vai?
Objetivo específico

• Planejar, implementar e administrar o ambiente do banco


de dados
• Instalar e configurar o sistema de banco de dados
• Realizar o monitoramento do uso e desempenho dos
sistemas de banco de dados
• Fazer a manutenção e otimização do banco de dados
• Selecionar o Sistema de Gerenciamento de Banco de
Dados (SGBD)
• Definir os procedimentos de instalação e configuração
• Criar a estrutura física de banco de dados
• Gerenciar a permissão de acesso ao banco de dados
• Elaborar um plano de expansão dos recursos de sistema
• Identificar e avaliar o impacto de falhas do banco de
dados
• Estruturar script de correção e melhorias, mediante à
desconformidade e às especificações do sistema
Para onde você vai?
Ementa
Descrição Comercial: Este curso tem
como objetivo fornecer aos alunos o
conhecimento e as habilidades para
manter um banco de dados software
Microsoft SQL Server e/ou MySQL.
Este curso é destinado aos clientes que
estão interessados em aprender os
conceitos e práticas em banco de dados,
em conformidade com as mais novas
práticas adotadas no mercado.
Para onde você vai?
Perfil Profissional de
Conclusão
O Administrador de Banco de
Dados (DBA) é responsável por
implementar, instalar, configurar,
administrar e realizar
procedimentos de otimização e
manutenção do sistema de banco
de dados de uma organização.
O que você vai fazer?
Média salarial
No cargo de Administrador de
Banco de Dados se inicia
ganhando R$ 4.601,00 de
salário e pode vir a ganhar até
R$ 9.848,00. A média salarial
para Administrador de Banco de
Dados no Brasil é de R$
7.090,00.
Organização Curricular
UC1 • Instalar e configurar o sistema de banco de dados
72h
UC2 • Realizar o monitoramento do uso e desempenho dos sistemas
48h de banco de dados

UC3 • Realizar a manutenção e otimização do banco de dados


60h
UC4 • Projeto Integrador Administração de Banco de Dados
20h
Símbolos importantes

• Olhando de perto: outras fontes de pesquisas

• Tá na Net: Sites para pesquisas e assuntos referentes


ao conteúdo aplicado
• Algo mais: Esclarecimento de algumas dúvidas do
aluno
• Poder do cérebro: algumas ideias criativas ou
curiosidades interessantes
Posso fazer este curso?
• Este curso é para estudantes ou
profissionais de tecnologia da
informação que possuem
conhecimentos em Windows e
aplicativos como Microsoft
Office e desejam se aperfeiçoar
na área de banco de dados.
Para quem é este curso?
Para quem responder “sim”
para todas as perguntas:

Você tem acesso a um computador


onde possa instalar o Oracle,
Microsoft SQL, MySQL ou outro
RDBMS?
Para quem é este curso?
Para quem responder “sim”
para todas as perguntas:

Você quer aprender, entender e


lembrar como criar tabelas, bancos
de dados, e escrever consultas
usando os mais novos e modernos
padrões?
Para quem é este curso?
Para quem responder “sim”
para todas as perguntas:

Você prefere uma festa estimulante


com jantar ao invés de palestras
secas, desanimadas e acadêmicas?
Para quem é este curso?
Para quem responder “sim”
para todas as perguntas:

Então este curso é para


você!!
Quem não deveria fazer este
curso, provavelmente?
Para quem responder “sim”
para todas as perguntas:

Você está completamente


confortável em iniciar a
sintaxe SQL e procurar algo
que realmente irá ajudá-lo
com o design de bancos de
dados avançados?
Quem não deveria fazer este
curso, provavelmente?
Para quem responder “sim”
para todas as perguntas:

Você já é um programador em
SQL avançado e está
procurando um curso para
especialização em engenharia
SQL?
Quem não deveria fazer este
curso, provavelmente?
Para quem responder “sim”
para todas as perguntas:

Você tem medo de tentar algo


novo? Você prefere ter que
fazer um canal no dente a usar
roupa xadrez com listras?
Quem não deveria fazer este
curso, provavelmente?
Para quem responder “sim”
para todas as perguntas:

Então este curso não é


para você!!
Quem não deveria fazer este
curso, provavelmente?
Mas nem tudo está
perdido!!

Se você esqueceu ou nunca


entendeu formulários normais,
conexões um-para-muitos e
conexão esquerda externa, você
está no lugar certo.
Sei o que seu cérebro está
pensando!
• Seu cérebro anseia por
novidades.
• Ele está sempre procurando
algo diferente.
• Faz as coisas normais com
tranquilidade e quando
chega algo novo o coração Será que isso
dispara. vale a pena ser
guardado.
Sei o que seu cérebro está
pensando!
• Juntos teremos muitas
Brainstorming (explosões de
ideias)
• Como vou aprender tudo
isso?
• Devagar a gente aprende,
basta ter foco.
Com certeza
vale a pena ser
guardado.
Sei o que seu cérebro está
pensando!
• Juntos teremos muitas
Brainstorming (explosões de
ideias)
• Como vou aprender tudo
isso?
• Devagar a gente aprende,
basta ter foco. E também
compartilhado
com outras
pessoas
Um lugar Eu costumava manter uma lista
de todos os meus pacientes no

todas as papel, mas eu sempre esquecia!


Então aprendi SQL e agora não

coisas
perco uma alma. Aprender
sobre tabelas não vai doer nada!

• Você não odeia


esquecer as coisas?
• Chave do carro,
cupom de desconto,
telefone do gás,
recadinho do chefe,...
Definindo
seus dados
• Você não odeia
esquecer as coisas?
• Chave do carro,
cupom de desconto,
telefone do gás,
recadinho do chefe,...
Definindo
seus dados
• Fred conhece várias
pessoas solteiras,
algumas procuram
amigos, outras
namorados,...
Sempre com sua velha
lista...
Poder do
cérebro
Existe uma maneira
melhor de organizar
esta informação? O
que você faria?
Poder do
cérebro
Saiba que um banco
de dados é tudo que
precisamos.
SGBD, como
funciona?
• (SGBD) Sistema de
Gerenciamento de
Banco de Dados é um
software que possui
recursos capazes de
manipular as
informações do banco
de dados e interagir com
o usuário.

O que é Meta-dados?
SGBD, os Top 5!
• (SGBD) Sistema de Gerenciamento de Banco de Dados é um
software que possui recursos capazes de manipular as
informações do banco de dados e interagir com o usuário.
• Exemplos de SGBD`s são: Oracle, SQL Server, DB2, PostgreSQL,
MySQL, o próprio Access ou Paradox, entre outros.

É tudo que
precisamos?
Veremos na próxima
Administrador de Banco de Dados
Instalando SGBD’s
Tente você
mesmo
• Todas as suas novas
habilidades não farão
muita coisa sem um
lugar para aplica-las.
• Chegou a hora de
instalar seu próprio
Sistema SQL.
INSTALANDO O BANCO DE DADOS
ORACLE 12C NO WINDOWS
• Antes de instalar o software, o
OUI (Oracle Universal Installer),
fará algumas verificações
automatizadas para garantir que
o computador atenda aos
requisitos básicos de hardware e
software para a instalação do
banco de Dados Oracle. Caso o
computador não atenda aos
requisitos, uma mensagem será
apresentada.
INSTALANDO O BANCO DE DADOS
ORACLE 21C XE NO WINDOWS
• Antes de começarmos a
instalar este banco de dados,
precisamos conhecer os
requisitos mínimos para o
Oracle Database 21c.
1. REQUISITOS
Requerimento Valor
Sistema operacional O Oracle Database XE para Windows x64 é suportado
nas seguintes versões do sistema operacional: Windows
7 x64 – edições Professional, Enterprise e Ultimate
Windows 8.1 x64 – edições Pro e Enterprise Windows 10
x64 – edições Pro, Enterprise e Education Windows
Server 2012 x64 – edições Standard, Datacenter,
Essentials e Foundation Windows Server 2012 R2 x64 –
edições Standard, Datacenter, Essentials e Foundation
Windows Server 2016 x64 – edições Standard,
Datacenter e Essentials
1. REQUISITOS
Requerimento Valor
Virtualização A Oracle certifica as seguintes tecnologias de
virtualização com o Oracle Database no Windows:
Servidor Oracle VM Microsoft Hyper-V Para obter
informações mais detalhadas sobre combinações
certificadas do Oracle VM Server, consulte a nota
464754.1 do My Oracle Support. Para obter mais
informações sobre combinações certificadas de Hyper-V,
você pode visitar:
http://www.oracle.com/technetwork/database/virtualiz
ationmatrix-172995.html
1. REQUISITOS
Requerimento Valor
Espaço em disco Mínimo de 9 gigabytes HD para software Oracle, mais 2
gigabytes ou mais para armazenamento temporário
RAM Mínimo de 2 gigabytes de RAM
2. DOWNLOAD
Acesse a página a seguir:
• https://www.oracle.com/dat
abase/technologies/xe-downl
oads.html

2. DOWNLOAD
3. Extraindo os arquivos
1. Descompacte o arquivo na
pasta Download ou na pasta
que você baixou.
Veremos na próxima
Administrador de Banco de Dados
Quem são os usuários de um Banco de Dados?
Quem são os
usuários de um
Banco de Dados?
• Os usuários de um banco de
dados podem ser divididos em
três categorias:
• Administrador do Banco de
Dados (DBA)
• Analistas de sistemas e
programadores de
aplicações
• Usuários finais
Administrador do
Banco de Dados (DBA)

• responsável por monitorar e


gerenciar todas as bases de
dados criadas no SGBD.
• controla as permissões dos usuários,
garante que os usuários tenham
acesso aos dados, realiza backups,
recupera os dados em caso de falhas,
garante o melhor desempenho para o
banco de dados, monitora serviços de
usuários no banco de dados, etc.
Analistas de sistemas
e programadores de
aplicações
• Normalmente, um DBA é
responsável por um SGBD
específico, e deve ter
estudado e feito cursos para
aquele SGBD (por exemplo:
DBA Oracle, DBA SQL Server
ou DBA mySQL).

• Algo mais: SQL – Strutured Query Language


(Linguagem de Consulta Estruturada)
Analistas de sistemas
e programadores de
aplicações
• Esse usuário precisa
conhecer a área de
banco de dados, saber
modelar uma base de
dados e também
conhecer a linguagem
SQL.
Usuários finais
• os usuários finais são
aquelas pessoas que
vão trabalhar
diariamente com as
aplicações
desenvolvidas.
Administrador de Banco de Dados
Modelo de Dados
O que é um Modelo de
(Banco de) Dados?

• Esse usuário precisa


conhecer a área de
banco de dados, saber
modelar uma base de
dados e também
conhecer a linguagem
SQL.
O que é um Modelo de
(Banco de) Dados?

• Esse usuário precisa


conhecer a área de banco
de dados, saber modelar
uma base de dados e
também conhecer a
linguagem SQL.

• Algo mais: Modelo de dados = Descrição formal da


estrutura de um banco de dados.
O que é um Modelo de
(Banco de) Dados?

• Modelo conceitual
• Modelo lógico
Modelo Conceitual

• Um modelo conceitual é uma descrição do banco de dados de forma


independente de implementação em um SGBD.
Modelo lógico

• Um modelo lógico é uma descrição de um banco de dados no nível


de abstração visto pelo usuário do SGBD. Assim, o modelo lógico é
dependente do tipo de SGBD que está sendo usado.
Administrador de Banco de Dados
Flash back
O Surgimento de tudo
DÉCADA DE 60
PRIMÓRDIOS
Nestes primórdios, bancos de dados
surgiram na empresa IBM, os dados eram
armazenados diretamente em arquivos,
os quais implementavam alguns
inconvenientes na armazenagem de
dados, como: 
• redundâncias e inconsistências
• dificuldade de acesso
• falta de integridade lógica
• falta de atomicidade nas transações
• insegurança 
DÉCADA DE 70
GÊNESIS 
Na década de 1970 o pesquisador da IBM
- Ted Codd - publicou o primeiro artigo
sobre bancos de dados relacionais.
• O Sistema R evoluiu para SQL/DS, que
posteriormente passou a chamar o DB2,
o mais conhecido sistema gerenciador
de banco dos dados da IBM. O Sistema
R utilizava uma linguagem chamada
Structured Query Language (SQL)
DÉCADA DE 80
DESENVOLVIMENTO
Nesta década surgiu o primeiro sistema
de banco de dados construído baseado
nos padrões SQL com a empresa Oracle
através do Oracle 2 e depois com a IBM
através do SQL/DS, servindo como
sistema e repositório de informações de
outras empresas. 
DÉCADA DE 90
MATURIDADE
No início da década nota-se a maturidade
que os bancos de dados atingiram com o
surgimento dos primeiros Sistemas
Gerenciadores de Banco de Dados SGDB
Orientados a Objeto comerciais, SGDBs
paralelos, tempo real, etc, além de
avanços na padronização de interfaces e
interoperabilidade.
ONDE ESTAMOS?

Atualmente, é possível afirmar que a


informação gira em torno dos bancos de
dados.
• GOOGLE
• Meta
• Microsoft
• Amazon
Mas o que são Dados?

• “Dados são itens referentes a


uma descrição primária de
objetos, eventos, atividades e
transações que são gravados,
classificados e armazenados,
mas não chegam a ser
organizados de forma a
transmitir algum significado
específico”.
Exemplos de Dados

• Dado: 
• data de nascimento:
31/08/1981. 
• data atual: 
01/11/2021. 
• Informação: 
• idade: 40 anos. 
Exemplos de Dados

• Dado: 
• Preço unitário: 
R$ 250,00
• quantidade. 
10 Kg
• Informação: 
• Total a pagar:
R$2.500,00.
Exemplos de Dados

• Dado: 
• Quilômetros percorridos: 
80 Km
• Tempo gasto: 
4 horas
• Informação: 
• Velocidade: 
20 km/h
Dados e Informação são sinônimos?

Por convenção, na área de banco de dados, os termos “dado”


e “informação” significam a mesma coisa. Isso ocorre porque
devemos armazenar apenas aquilo que é útil para a nossa
aplicação. Sendo assim, daqui para a frente, os dois termos
serão usados como sinônimos.

PROGRAMA
INFORMAÇ
DADOS DE
ÃO
CONSULTA
O que são Dados?

• Algo mais:

Alguns exemplos de banco de dados: lista


telefônica, controle do acervo de uma
biblioteca, sistema de controle dos recursos
humanos de uma empresa.
O que são
Informações?

• Algo mais:

São resultados gerados com base nos dados


fornecidos pelo banco de dados através do SGBD
ao usuário da forma que ele solicita.
Banco de Dados e
suas vantagens

Armazenar dados em bancos


de dados apresenta algumas
vantagens, tais como:
• Os bancos de dados
armazenam dados
substituindo grandes
volumes de papéis. 
Banco de Dados
e suas vantagens

Armazenar dados em bancos


de dados apresenta algumas
vantagens, tais como:
• A obtenção e a atualização
dos dados acontecem de
forma mais rápida do que
um ser humano
manipulando papéis.
Banco de Dados
e suas vantagens

Armazenar dados em bancos


de dados apresenta algumas
vantagens, tais como:
• Os sistemas de bancos de
dados realizam o trabalho
repetitivo e monótono.
• Disponibilizam dados
atualizados a qualquer
momento. 
Banco de Dados
e suas vantagens

A tecnologia dos bancos de


dados permite a manipulação
rápida e segura de grandes
volumes de dados. Um banco
de dados serve para: 
• Armazenar grandes volumes
de dados;
• Localizar e atualizar
rapidamente os dados;
Banco de Dados
e suas vantagens

A tecnologia dos bancos de


dados permite a manipulação
rápida e segura de grandes
volumes de dados. Um banco
de dados serve para: 
• Organizar os dados em
diferentes ordens.
• Produzir listas ou relatórios.
• Gerar estatísticas.
O que é Transação em
Banco de Dados?

Uma transação é uma


operação realizada com um
banco de dados (gravação,
leitura, atualização, exclusão,
etc.).
Como começou o
Armazenamento de
Dados?
Uma transação é uma
operação realizada com um
banco de dados (gravação,
leitura, atualização, exclusão,
etc.).
Como começou o •Problema
Armazenamento
de Dados? Sistema com aplicações e arquivos isolados
Como começou o •Solução
Armazenamento
de Dados? •Arquivo integrado 
Palavras Reservadas e
Caracteres Especiais
• Linguagem SQL consiste de palavras-chave reservadas. É melhor
manter estas palavras longe do nome de seu banco de dados, tabelas
ou colunas. Ainda que goste de nomear sua nova tabela de "include"
tente criar algum nome mais descritivo, que não utiliza a palavra
"include" de forma alguma, ela serve para incluir valores na tabela.
Para sua conveniência, a seguir está uma lista daquelas palavras
reservadas.
Caracteres especiais
Caracteres Utilidade
* Retorna todas as colunas em uma tabela de um comando SELECT
() Utilizada por expressões em grupo, especifica a ordem na qual realizará operações matemáticas,
e fazer ligações. Também usada para conter subconsultas.
; Termina seu comando SQL.
, Separa uma lista de itens. Seu uso inclui o comando INSERT.
. Usada para fazer referência aos nomes de tabelas e utilizada em números decimais.
_ Este é um coringa que representa um só caractere em uma cláusula LIKE
Caracteres especiais
Caracteres Utilidade
% Outra cláusula LIKE coringa, esta aqui é usada no caso de múltiplos caracteres.
! O ponto de exclamação quer dizer NÃO. Ela é usada com comparadores na cláusula WHERE.
´´ Um par de aspas simples diz ao Sistema que um valor de texto está entre eles.
"  " Você também pode utilizar um par de aspas duplas da mesma forma, embora seja melhor se
ater a forma de aspas simples.
\ Este caractere é usado para lhe permitir colocar uma aspa simples dentro de um texto na sua
coluna ou sua tabela.
+ Além de utilizá-lo como sinal de adição, você pode utilizá-lo para conectar ou concatenar duas
faixas de texto.
Operadores matemáticos
Caracteres Utilidade
+ Adição
- Subtração
* Entre dois valores, o asterisco age como símbolo de multiplicação.
/ Divisão
^ Potenciação (algumas exceções )
Operadores comparativos
Caracteres Atribuição Caracteres Atribuição
> Maior que <> Diferente de
< Menor que >= Maior ou igual
= Igual a <= Menor ou igual
!> Não maior que != Não igual
!< Não menor que
Conectores lógicos
Caracteres Atribuição
& ou AND Lógica de intersecção
|| ou OR Lógica de junção
NOT Lógica de exeção
XOR Lógica de negar a junção

X1 X2 X1 AND X2 X1 OR X2 NOT X1 NOT X2 X1 XOR X2


1 1 1 1 0 0 0
1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 0 0 1 1 0
Como explicar isso?
Se tiver sol, fim de semana, vou à praia
X1 X2 X1 E X2
Tiver de sol For fim de semana Se tiver de sol E for fim de semana, vou à praia
Tiver de sol Não for fim de semana Se tiver de sol E não for fim de semana não vou à praia
Não tiver de sol For fim de semana Se não tiver de sol E for fim de semana não vou à praia
Não tiver de sol Não for fim de semana Se não tiver de sol E não for fim de semana não vou à praia

X1 X2 X1 OU X2
Tiver de sol For fim de semana Se tiver de sol OU for fim de semana, vou à praia
Tiver de sol Não for fim de semana Se tiver de sol OU não for fim de semana vou à praia
Não tiver de sol For fim de semana Se não tiver de sol OU for fim de semana vou à praia
Não tiver de sol Não for fim de semana Se não tiver de sol OU não for fim de semana não vou à praia
Palavras reservadas
ADD ALL ALTER
ANALYZE AND AS
ASC BEFORE BETWEEN
BIGINT BINARY BLOB
BOTH BY CASCADE
CASE CHANGE CHAR
CHARACTER CHECK COLLATE
COLUMN COLUMNS CONSTRAINT
CONVERT CREATE CROSS
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
CURRENT_USER DATABASE DATABASES
DAY_HOUR DAY_MICROSECOND DAY_MINUTE
Palavras reservadas
ADD ALL ALTER
DAY_SECOND DEC DECIMAL
DEFAULT DELAYED DELETE
DESC DESCRIBE DISTINCT
DISTINCTROW DIV DOUBLE
DROP DUAL ELSE
ENCLOSED ESCAPED EXISTS
EXPLAIN FALSE FIELDS
FLOAT FLOAT4 FLOAT8
FOR FORCE FOREIGN
FROM FULLTEXT GRANT
GROUP HAVING HIGH_PRIORITY
Palavras reservadas
ADD ALL ALTER
HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND
IF IGNORE IN
INDEX INFILE INNER
INSERT INT INT1
INT2 INT3 INT4
INT8 INTEGER INTERVAL
INTO IS JOIN
KEY KEYS KILL
LEADING LEFT LIKE
LIMIT LINES LOAD
LOCALTIME LOCALTIMESTAMP LOCK
Palavras reservadas
ADD ALL ALTER
LONG LONGBLOB LONGTEXT
LOW_PRIORITY MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MICROSECOND MINUTE_SECOND MOD
NATURAL NOT NO_WRITE_TO_BINLOG
NULL NUMERIC ON
OPTIMIZE OPTION OPTIONALLY
OR ORDER OUTER
OUTFILE PRECISION PRIMARY
PRIVILEGES PROCEDURE PURGE
READ REAL REFERENCES
Palavras reservadas
ADD ALL ALTER
REGEXP RENAME REPLACE
REQUIRE RESTRICT REVOKE
RIGHT RLIKE SECOND_MICROSECOND
SELECT SEPARATOR SET
SHOW SMALLINT SONAME
SPATIAL SQL_BIG_RESULT SQL_CALC_FOUND_ROWS
SQL_SMALL_RESULT SSL STARTING
STRAIGHT_JOIN TABLE TABLES
TERMINATED THEN TINYBLOB
TINYINT TINYTEXT TO
TRAILING TRUE UNION
Palavras reservadas
ADD ALL ALTER
UNIQUE UNLOCK UNSIGNED
UPDATE USAGE USE
USING UTC_DATE UTC_TIME
UTC_TIMESTAMP VALUES VARBINARY
VARCHAR VARCHARACTER VARYING
WHEN WHERE WITH
WRITE XOR YEAR_MONTH
ZEROFILL
Facilitando as coisas
Código Tradução Exemplo
ALL É uma subconsulta que retorna SELECT * FROM tabela WHERE campo > 10 AND
um conjunto de resultados com campo > 15
uma coluna substituindo o SELECT * FROM tabela WHERE campo >
operador AND. ALL(10, 15)
ANY Quando a condição ANY é seguida SELECT * FROM tabela WHERE campo > 10 OR
por uma lista, o otimizador campo > 15
expande a condição inicial para SELECT * FROM tabela WHERE campo >
todos os elementos da lista e os ANY(10, 15)
codifica em conjunto com os
operadores OR
SOME SOME E ANY tem a mesmas
condições

* Não funciona em todos os SGBD`s


Mais tipos de
dados?
• Você conhece os tipos de
dados mais comuns, mas há
alguns detalhes que podem
ajudar a deixar suas colunas
ainda mais refinadas.
Olhando de
perto
Vamos olhar de perto para
alguns novos tipos de
dados, em um olhar mais
aprofundado naqueles
que já estamos usando.
Tipos de dados INT (número
inteiro)
Formato Representação
BOOLEAN O tipo de dados booleano que permite que armazene "verdadeiro" ou "falso". Na
prática o sistema SQL está armazenando 1 ou "true" para verdadeiro, 0 ou "false".
... excluido=0 ou ... excluido=false ou então ... excluido=1 ou ... excluido=true
INT Pode armazenar valores na faixa de 0 a 4294967295 isso se você usar somente os
positivos.
INT(SIGNED) INT ASSINADA armazena de -2147483648 a 2147483647 isso se você usar somente os
positivos.
SMALLINT Armazena SIGNED de –32768 a 32767 e INSIGNED de 0 a 65535.
BIGINT Armazena SIGNED de –9223372036854775808 a 9223372036854775807 e INSIGNED
de 0 a 18446744073709551615.
TINYINT Armazena SIGNED de –128 a 127 e INSIGNED de 0 a 255.
MEDIUMINT Armazena SIGNED de –8388608 a 8388607 e INSIGNED de 0 a 16777215.
Tipos de dados DECIMAL
(número DECIMAL)
Formato Representação
FLOAT(n,d) Flutuante dados de números de precisão de -1.79E + 308 para 1.79E + 308.
O parâmetro n indica se o campo deve conter 4 ou 8 bytes. float (24) tem um campo de
4 bytes e float (53) tem um campo de 8 bytes. valor padrão de n é de 53.
DOUBLE(n,d) Um grande número com um ponto decimal flutuante. O número máximo de dígitos
pode ser especificado no parâmetro de tamanho.
DECIMAL(n,d) Um duplo armazenada como uma cadeia, permitindo um ponto decimal fixo. O número
máximo de dígitos pode ser especificado no parâmetro de tamanho.
Tipos de dados DATE e TIME
Formato Representação
DATE Armazena data no formato YYYY-MM-DD 2021-08-01
DATETIME Armazena data e hora no formato YYYY-MM-DD HH:MM:SS  2021-08-01 22:12:59
TIMESTAMP Armazena data e hora no formato YYYYMMDDHHMMSS 20210801221259
TIME Armazena hora no formato HH:MM:SS 22:12:59
YEAR Armazena um ano de dois dígitos ou formato de quatro dígitos. YYYY  2021

Quando utiliza o tipo date ou time, você pode modificar o que seu Sistema exibe. Funções fazem isso de
acordo com o Sistema. Aqui está um exemplo da função no MySQL. DATE_FORMAT()
Suponha que você tivesse na tabela algumas_datas a coluna uma_data 

SELECT DATE_FORMAT(uma_data, '%M %Y'),  FROM algumas_datas


uma_data DATE_FORMAT(uma_data, '%M %Y')
2007-08-31 Agosto 2007
1925-01-22 Janeiro 1925
Tipos de dados TEXTO
Formato Representação
CHAR(n) Armazena um inteiro alfanumérico de 0 a 255. Alguns conjuntos de caracteres UNICODE
VARCHAR(n) armazenam os dados em ASCII e utilizam 1 byte ou 8 bits para representar um caractere.
TINYTEXT Detém uma cadeia com um comprimento máximo de 255 caracteres
TEXT Detém uma cadeia com um comprimento máximo de 65.535 caracteres
BLOB Para BLOBs (objetos binários grandes). Armazena até 65.535 bytes de dados
MEDIUMTEXT Detém uma cadeia com um comprimento máximo de 16.777.215 caracteres
MEDIUMBLOB Para BLOBs (objetos binários grandes). Armazena até 16.777.215 bytes de dados
LONGTEXT Detém uma cadeia com um comprimento máximo de 4,294,967,295 caracteres
LONGBLOB Para BLOBs (objetos binários grandes). Armazena até 4,294,967,295 bytes de dados
Como é bom
desenhar!
• Você consegue fazer um
desenho de tudo que
acontece ao seu redor?
Modelagem Conceitual

• A técnica de modelagem de dados mais difundida e utilizada é a


abordagem entidade-relacionamento (ER). Nesta técnica, o modelo
de dados é representado através de um modelo entidade-
relacionamento (modelo ER) geralmente representado por um
diagrama entidade-relacionamento (DER). 
Modelagem Conceitual

• ENTIDADE
• Uma entidade representa um conjunto de objetos da realidade
modelada. Como o objetivo de um modelo ER é modelar de forma
abstrata um BD, interessa-nos somente os objetos sobre os quais se
deseja manter informações.

• Olhando de perto: Conjunto de objetos


Pessoa que assemelham o nosso dia-a-dia e sobre
os quais se pretende armazenar dados.
Modelagem Conceitual

• ATRIBUTO
• Atributos são representados graficamente conforme mostra a figura
8. A figura expressa que cada ocorrência de PESSOA tem associado
exatamente um nome, uma data de nascimento, um endereço e um
telefone.

• Olhando de perto: Dado que é associado a


Nome Código cada ocorrência de uma entidade ou de um
relacionamento. 
Modelagem Conceitual

• Relacionamento
• Atributos são representados graficamente conforme mostra a figura
8. A figura expressa que cada ocorrência de PESSOA tem associado
exatamente um nome, uma data de nascimento, um endereço e um
telefone.

• Olhando de perto: Dado que é associado a


Relacionamento cada ocorrência de uma entidade ou de um
relacionamento. 
Primeiro passo eu faço

• Fique atento às Entidades-Relacionamento ER para o diagrama :

Um (0,1) (1,1)

Atributo Muitos (0,n)


Entidade Relacionamento Atributo Chave
primaria
Um somente um (1,1)

Zero ou um (0,1)

Um ou muitos (1,n)

Zero ou muitos (0,n)


Resolvendo o problema
• Lanchonete Neide Leite
• Neide Leite é um estabelecimento comercial popular
especializado em pequenas refeições rápidas, lanches
e sanduíches mesmo fora do horário normal das refeições. 
• Normalmente é vendido o lanche à escolha do cliente antes
de ser feito. Por isso, Neide tem que ter muito cuidado para
não misturar as coisas ou até mesmo passar sem receber.
• Graciano utiliza um painel para anotar cada pedido, mas
são tantos clientes que o painel está cheio
Resolvendo o problema
• Lanchonete Neide Leite
• Neide Leite é um estabelecimento comercial popular
especializado em pequenas refeições rápidas, lanches
e sanduíches mesmo fora do horário normal das refeições. 
• Normalmente é vendido o lanche à escolha do cliente antes
de ser feito. Por isso, Neide tem que ter muito cuidado para
não misturar as coisas ou até mesmo passar sem receber.
• Graciano utiliza um painel para anotar cada pedido, mas
são tantos clientes que o painel está cheio
Primeiro passo eu faço

• Fique atento às Entidades-Relacionamento ER para o diagrama :

Código Código

Nome Nome

Valor CPF

(1,n)                                                (1,1)
Lanche Pedido Cliente
Tente você
mesmo
• Agora chegou a sua vez.
Veja um problema que
aparece no seu dia-a-dia
para elaborar um modelo
conceitual de projeto para
resolver este problema.
• Pegue o limão e faça uma
limonada.
Cardinalidade de relacionamentos
• Cardinalidade 
• Para fins de projeto de banco de dados, uma propriedade
importante de um relacionamento é a de quantas ocorrências de
uma entidade podem estar associadas a uma determinada
ocorrência através do relacionamento. Esta propriedade é chamada
de cardinalidade de uma entidade em um relacionamento. Há duas
cardinalidades a considerar: a cardinalidade máxima e a
cardinalidade mínima.
• Olhando de perto: Cardinalidade (mínima, máxima) de entidade
em relacionamento = Número (mínimo, máximo) de ocorrências
de entidade associadas a uma ocorrência da entidade em
questão através do relacionamento. 
Cardinalidade de relacionamentos

• Em um DER, um relacionamento é representado através da


modelagem a seguir:

• Um departamento de uma empresa pode contratar no máximo 120


pessoas.

Departamento Lotação Empregado


Cardinalidade de relacionamentos
• Este modelo expressa que o BD mantém informações sobre:
• um conjunto de objetos classificados como empregado (entidade
EMPREGADO); 
• um conjunto de objetos classificados como departamentos
(entidade DEPARTAMENTO); e 
• um conjunto de associações, cada uma ligando um departamento a
uma pessoa (relacionamento LOTAÇÃO). 
Departamento Lotação Empregado
Cardinalidade máxima
Entidade EMPREGADO tem cardinalidade máxima 1 no
relacionamento LOTAÇÃO. 
• Isso significa que uma ocorrência de EMPREGADO pode estar
associada a no máximo uma ocorrência de DEPARTAMENTO ou, em
outros termos, que um empregado pode estar lotado em no máximo
um departamento.

1
Departamento Lotação Empregado
Cardinalidade máxima
Entidade DEPARTAMENTO tem cardinalidade máxima 120 no
relacionamento LOTAÇÃO.  
• Isso significa que uma ocorrência de DEPARTAMENTO pode estar
associada a no máximo 120 ocorrências de EMPREGADO ou, em
outros termos, que um departamento pode ter nele lotado no
máximo 120 empregados.

Departamento Lotação Empregado


u
Cardinalidade máxima
Entidade DEPARTAMENTO tem cardinalidade máxima 120 no
relacionamento LOTAÇÃO.  
• Acardinalidade máxima um (1); e
• Acardinalidade máxima ilimitada, usualmente chamada de
cardinalidade máxima "muitos" e referida pela letra n.

1
Departamento Lotação Empregado
u
Cardinalidade mínima

• Olhando de perto: A cardinalidade mínima 1 também recebe a


denominação de "associação obrigatória", já que ela indica que
o relacionamento deve obrigatoriamente associar uma
ocorrência de entidade a cada ocorrência da entidade em
questão. 

0
Departamento Lotação Empregado

1
Cardinalidade mínima
Além da cardinalidade máxima, outra informação que pode ser
representada por um modelo ER é o número mínimo de ocorrências
de entidade associadas a uma ocorrência de uma entidade através de
um relacionamento. Para fins de projeto de BD, consideram-se apenas
duas cardinalidades mínimas: a cardinalidade mínima 0 e a
cardinalidade mínima 1.

0
Departamento Lotação Empregado

1
Classificação de relacionamentos
unários
A cardinalidade máxima pode ser usada
para classificar relacionamentos binários. PESSOAS
Um relacionamento unário é aquele cujas
ocorrências contêm duas ocorrências de Esposa       1                Marido   1  
entidade. Podemos classificar os
relacionamentos binários em n:n, 1:n e Casamento
1:1. 
PESSOAS

Cliente      n                                 n    Vendedor

Venda
Classificação de relacionamentos
binários
Cria-se uma relação para cada entidade
participante no relacionamento da
entidade do lado “1” na entidade do lado
“N” 

Cliente venda Vendedor


Classificação de relacionamentos
Ternários
Cria-se uma relação para cada entidade
participante no relacionamento da
entidade do lado “1” na entidade do lado
“N” 

Fábrica produzir Produto

Matéria prima
Classificação de relacionamentos
Ternários
Cria-se uma relação para 3
entidades participantes no
relacionamento.

Fábrica produzir Produto

Fábrica
Exemplos de relacionamentos
Relacionamentos 1:N

1                                                            n
Sala Lotação Aluno

n                                                            1
Dependente Empregado
Exemplos de relacionamentos
Relacionamentos N:N

n                                                            n
Engenheiro Atuação Projetos

n                                                            n
Paciente Consulta Médico
Exemplos de relacionamentos
Relacionamentos 1:1

1                                                             1
Pessoa "marido" casamento Pessoa "mulher"
Cardinalidade máxima e mínima
A imagem abaixo apresenta um exemplo de um modelo ER mais
abrangente que os anteriores, envolvendo as entidades e
relacionamentos com as cardinalidades máxima e mínima.

1,1 0,n
Departamento Lotação Empregado
A jornada
continua
• Vamos continuar
resolvendo os
problemas que
aparecem em nosso dia-
a-dia.
• Pegue o limão e faça uma
limonada.
Diagrama de Entidade Relacionamento
(DER)
Ao falar de MER, sempre nos deparamos com o Diagrama de Entidade
Relacionamento (DER). Na verdade, o DER nada mais é que a
representação gráfica do que foi escrito no MER.

Funcionários Dependentes
Entidade (Personagem da história)
Representam categorias de fatos do mundo real, sejam eles concretos
ou abstratos, como empregados, departamentos, despesas etc.

Funcionário
Entidade (Personagem da história)
Representam categorias de fatos do mundo real, sejam eles concretos
ou abstratos, como empregados, departamentos, despesas etc.

Filhos
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos. Obs: A obrigatoriedade
proposta pela empresa é que os funcionários tenham filhos e no
máximo 1.

José
R1 Filho 1
João
R2 Filho 2
Antônio
R3 Filho 3
Manoel
R4 Filho 4
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos.
Fixa um Funcionário. Todo funcionário precisa ter um somente um
filho
1 Mínimo 1 Mínimo
José
R1 Filho 1
1 Máximo 1 Máximo
João
R2 Filho 2
Funcionário Filho
Antônio
R3 Filho 3
Manoel
R4 Filho 4
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos. Obs: A obrigatoriedade
proposta pela empresa é que os funcionários tenham filhos e no
máximo 1.

(1,1) (1,1)
Funcionários Dependentes
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos. Obs: A obrigatoriedade
proposta pela empresa é que os funcionários tenham no máximo 1
filho.
José
R1 Filho 1
João
R2 Filho 2
Antônio
R3 Filho 3
Manoel
R4 Filho 4
Heder
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos. Obs: A obrigatoriedade
proposta pela empresa é que os funcionários tenham no máximo 1
filho.
José
R1 Filho 1
João
R2 Filho 2
Antônio
R3 Filho 3
Manoel 1 Mínimo 0 Mínimo
R4 Filho 4
Heder 1 Máximo 1 Máximo

Funcionário Filho
Cardinalidade 1:1 no DER
Funcionário da empresa possui filhos. Obs: A obrigatoriedade
proposta pela empresa é que os funcionários tenham no máximo 1
filho.

(1,1) (0,1)
Funcionários Possui Dependentes
Cardinalidade 1:1 no DER
Pessoa quer adotar possui criança. Obs: A obrigatoriedade proposta
pela instituição é que uma pessoas adote no mínimo e no máximo 1
criança.

José
R1 Criança 1
João
R2 Criança 2
Antônio
R3 Criança 3

Adota Criança 4
Cardinalidade 1:1 no DER
Pessoa quer adotar possui criança. Obs: A obrigatoriedade proposta
pela instituição é que uma pessoas adote no mínimo e no máximo 1
criança.

José
R1 Criança 1
João
R2 Criança 2
Antônio
R3 Criança 3
0 Mínimo 1 Mínimo
Adota Criança 4
1 Máximo 1 Máximo

Pessoas Criança
Cardinalidade 1:1 no DER
Pessoa quer adotar possui criança. Obs: A obrigatoriedade proposta
pela instituição é que uma pessoas adote no mínimo e no máximo 1
criança.

(0,1) (1,1)
Pessoa Adota Criança
Entidades Fraca
Entidade fraca é uma entidade que não possui existência própria (sua
existência depende da existência de outra entidade) ou que para ser
identificada depende da identificação de outra entidade.

Filhos
Entidades Fraca
Entidade fraca é uma entidade que não possui existência própria (sua
existência depende da existência de outra entidade) ou que para ser
identificada depende da identificação de outra entidade.

Funcionários Dependentes
Entidades Fraca
Entidade fraca normalmente se relaciona com a entidade forte com as
seguintes cardinalidade máxima de 1 para 1.

Funcionários Dependentes
Atributos do DER
Representam uma propriedade de uma entidade ou de um
relacionamento, como salário de um empregado ou o tempo que um
empregado estará alocado em um projeto.

Nome
Atributos do DER
Representam uma propriedade de uma entidade ou de um
relacionamento, como salário de um empregado ou o tempo que um
empregado estará alocado em um projeto.

Nome: Heder Vieira de Lima


Nome Data de Nasc.: 31/05/2005
Sexo: Masculino
Atributos opcionais
Atributos com propriedades que podem assumir NULL. São indicados
por um traço que corta a linha que liga o atributo à entidade ou
relacionamento.

Facebook
Atributos opcionais
Atributos com propriedades que podem assumir NULL. São indicados
por um traço que corta a linha que liga o atributo à entidade ou
relacionamento.

Rede social: Facebook/hedervieiradelima


Idade Tamanho do calçado: 43
Cor favorita: Verde
Idade: 40 -> Data atual - Data de nasc.
Atributos Chave
Tipo de atributo cujos valores são distintos para cada entidade em um
conjunto de entidades. O CPF de um funcionário, por exemplo,
constitui um atributo-chave para o tipo de entidades FUNCIONÁRIO.

CPF
Atributos Chave
Tipo de atributo cujos valores são distintos para cada entidade em um
conjunto de entidades. O CPF de um funcionário, por exemplo,
constitui um atributo-chave para o tipo de entidades FUNCIONÁRIO.

CPF: 022.552.853-89
CPF Matrícula: 5854
ID_Altomatico: 258
Atributos compostos
Representam uma abstração de outros atributos, como um endereço
que abstrai (agrega) outros dados como rua, CEP, cidade etc.

Rua

Bairro
Endereço

Cidade/Estado
Atributos compostos
Representam uma abstração de outros atributos, como um endereço
que abstrai (agrega) outros dados como rua, CEP, cidade etc.

Endereço:
Rua Rua RP3, n 25, Setor Guará, Ceres, GO,
76300000
Bairro
Endereço

Cidade/Estado Rua: RP3


Número: 25
Setor: Guará
Cidade: Ceres
Estado: GO
CEP: 76300-000
Atributos multivalorados
Atributos com propriedades que podem assumir mais de um valor,
como os números de telefone de um departamento.

Telefone
Atributos multivalorados
Atributos com propriedades que podem assumir mais de um valor,
como os números de telefone de um departamento.

Telefone: (62) 95856-5856, (62) 89657-


9685, (62) 98443-6114

E-mail: [email protected],
Telefone
[email protected],
[email protected]

Diversão Favorita: Andar de skate, voar de


parapente, saltar de paraquedas
Olhando de
perto
Vamos bisbilhotar a
vida de Greg.
Poder do
cérebro
Considere os bancos
de dados abaixo
1: Banco de dados para biblioteca
• Elabore um projeto através
de uma Modelagem
Conceitual que supre as
necessidades de um
bibliotecário.
• Crie a modelagem ER
identificando as entidades. CPF

• Determine se as atribuições
são necessárias, opcionais
ou chaves.
2: Banco de dados de Banco
• Elabore um projeto através
de uma Modelagem
Conceitual que supre as
necessidades de um cliente
em um banco.
• Crie a modelagem ER
identificando as entidades. CPF

• Determine se as atribuições
são necessárias, opcionais
ou chaves.
3: Banco de dados de Supermercado
• Elabore um projeto através
de uma Modelagem
Conceitual que relacione
duas Entidades.
• Crie a modelagem ER
identificando as entidades.
• Determine se as atribuições CPF

são necessárias, opcionais


ou chaves.
Entidade associativa

• Em alguns casos, é necessário que


associemos uma entidade com a ocorrência
de um relacionamento. O modelo de
entidades e relacionamentos não permite
relacionamentos entre relacionamentos,
somente entre entidades.
Entidade associativa
• Se desejarmos controlar os medicamentos receitados pelo
médico em determinada consulta, temos que relacionar a
entidade medicamento com o fato de ter havido uma consulta
Entidade associativa
Entidade associativa

Como não podemos fazer isso diretamente, indicamos que o


relacionamento consulta é uma entidade associativa
Entidade associativa
Entidade associativa
Generalização e Especialização
• Salienta que algumas ocorrências de uma
entidade assumem papéis específicos, ou seja,
são especializações, como o fato de um
empregado ser um motorista ou secretário,
inclusive com a possibilidade de terem atributos
específicos.
Especialização Total

• Quando uma entidade específica tem obrigação


de uma ligação com a entidade genérica.
Especialização Parcial

• Quando uma entidade não tem obrigatoriamente


uma ligação com a entidade genérica.
Especialização com ou sem
obrigatoriedade
• Indica se uma especialização é obrigatória ou não.
Em caso negativo, diz-se que a especialização é
parcial. A parcialidade é indicada pelo uso da letra
P colocada ao lado do triângulo.
Especialização SEM
obrigatoriedade (p = PARCIAL)
Especialização COM
obrigatoriedade (t = TOTAL)
Agregação
• Uma agregação é representada por um polígono
fechado que envolve as entidades e o
relacionamento entre elas, determinando a
entidade agregada.
Agregação
Domínio
• O domínio define o universo de valores permitidos para certo item de
dado. Valores que podem ser compostos por textos, números, lógico,
datas, etc.

• Data: maior de 40 anos -> 31/12/1981 – infinito


• Data: até 15 anos -> 2021 até 2006
• Número: de 0 a 100 membros
• Sexo: Masculino, Feminino
Tupla
• É um conjunto de pares (atributo – valor) que define
uma linha da tabela, ou seja, uma ocorrência de uma
entidade ou relacionamento.

(11)1234-5678 Rua Seis, 85 Morumbi


1 João
(11)2345-6789 12536-965
Tupla Atributo

ID Nome Telefone Endereço

Tupla (11)1234-5678; Rua Seis, 85 Morumbi


1 João
(11)2345-6789 12536-965

(11)3456-7890; Rua Onze, 64 Moema


2 Maria
(11)4567-8901 65985-963

(11)5678-9012; Praça Ramos Liberdade


3 José
(11)6789-0123 68858-456

Valor
Normalização

• Normalização é o processo de
modelar o banco de dados
projetando a forma como as
informações serão
armazenadas a fim de
eliminar, ou pelo menos
minimizar, a redundância no
banco.
Principais normalizações

1FN
• Eliminar as colunas repetitivas das tabelas individuais.
• Criar uma tabela separada para cada atributo de dados relacionados.
• Identificar cada atributo relacionado com uma chave primária.

2FN
• Criar tabelas separadas para um dado que aplica em vários registros da
tabela principal.
• Relacionar estas tabelas através de uma chave estrangeira.

3FN • Eliminar aqueles campos que não dependam da chave.


• Incluir campos que pertençam a chave.
Tupla Atributo

ID Nome Telefone Endereço

Tupla (11)1234-5678; Rua Seis, 85 Morumbi


1 João
(11)2345-6789 12536-965

(11)3456-7890; Rua Onze, 64 Moema


2 Maria
(11)4567-8901 65985-963

(11)5678-9012; Praça Ramos Liberdade


3 José
(11)6789-0123 68858-456

Valor
Poder do
cérebro
Agora é com você! A
criação da modelagem
foi realizada, agora é só
criar o BD dos casos a
seguir.
1: Banco de dados para biblioteca

• Elabore um projeto através


de uma Modelagem
Conceitual que supre as
necessidades de um
bibliotecário.
• Crie a identificando as
CPF
entidades.
• Determine se as atribuições
são necessárias, opcionais
ou chaves.
2: Banco de dados de Banco
• Elabore um projeto através
de uma Modelagem
Conceitual que supre as
necessidades de um cliente
em um banco.
• Crie a modelagem ER
identificando as entidades. CPF

• Determine se as atribuições
são necessárias, opcionais
ou chaves.
3: Banco de dados de Supermercado
• Elabore um projeto através
de uma Modelagem
Conceitual que relacione
duas Entidades.
• Crie a modelagem ER
identificando as entidades.
• Determine se as atribuições CPF

são necessárias, opcionais


ou chaves.
Instalando
Microsoft SQL
Server
• Este artigo mostra como
instalar e configurar o SQL
Server Express 2017, versão
gratuita do banco de dados da
Microsoft, e o SQL Server
Management Studio (SSMS)
Instalação do SQL Server
Express 2017
Instalação do SQL Server
Express 2017
• Para instalar o SQL Server
Express 2017, prossiga conforme
as figuras abaixo.

• Primeiramente, execute o
instalador baixado no site da
Microsoft, e selecione a opção
Instalação do SQL Server
Express 2017
• Logo após a conclusão do
download dos arquivos, será
aberta a janela para instalação do
SQL Server.  Selecione a
opção: Nova instalação
autônoma do SQL Server ou
adicionar recursos a uma
instalação existente.
Instalação do SQL Server
Express 2017
• Então aceite os termos da
licença.
Instalação do SQL Server
Express 2017
• Então aceite os termos da
licença.
Instalação do SQL Server
Express 2017
• Verifique se as regras de
instalação identificaram
problemas que podem ocorrer
durante a instalação (nota: o
aviso de Firewall não
compromete a instalação).
Instalação do SQL Server
Express 2017
• Conforme imagem ao lado, selecione
os recursos a serem instalados.
• NOTA: Um dos pré-requisitos
necessários é o Oracle SE Java
Runtime Environment Versão 7
Atualização 51 ou superior (64 bits),
que pode ser encontrado no site do
fabricante: 
• http://www.oracle.com/technetwork/
pt/java/javase
/downloads/jre8-downloads-2133155
.html.
Instalação do SQL Server
Express 2017
• Depois, selecione a opção
“Instância nomeada”.
Instalação do SQL Server
Express 2017
• Depois, selecione a opção
“Instância nomeada”.
Instalação do SQL Server
Express 2017
• O próximo passo é o mais
importante da instalação:
selecione a opção Modo Misto
(autenticação do SQL Server e
do Windows); logo abaixo,
defina a senha inicial do usuário
“sa”, que é o usuário
administrador padrão.
Instalação do SQL Server
Express 2017
• Conceda a permissão para
instalar os pré-requisitos
necessários.
Instalação do SQL Server
Express 2017
• Conceda a permissão para
instalar os pré-requisitos
necessários.
Instalação do SQL Server
Express 2017
• Aguarde o termino da instalação
do SQL Server.
Instalação do SQL Server
Express 2017
• Uma vez concluída a instalação, o próximo passo é instalar
o Microsoft SQL Server Management Studio, que torna possível
criar os bancos de dados.
Instalação do Microsoft
SQL Server Management
Studio
Para a correta instalação do SSMS, prossiga conforme as imagens abaixo:
Instalação do Microsoft SQL
Server Management Studio
Instalação do Microsoft SQL
Server Management Studio
Instalação do Microsoft SQL
Server Management Studio
Explorando nosso
Microsoft SQL Server
Management Studio
Para a correta instalação do SSMS, prossiga conforme as imagens abaixo:
Explorando nosso Microsoft SQL Server
Management Studio
Explorando nosso Microsoft SQL Server
Management Studio
Administrador de Banco de Dados
Realizar o monitoramento do uso e desempenho dos sistemas de banco
de dados
Linguagens de banco de dados
• A linguagem para acessar um banco de dados depende do tipo de
banco de dados. Aqueles do tipo relacional usam a linguagem SQL
(Structured Query Language).
Linguagens de banco de dados
• Em 1992, o SQL foi revisto e surgiu o SQL-92. Com a revisão em
1999, foi criado o SQL-99 (SQL3) e depois, em 2003, com nova
revisão, surgiu o SQL:2003. No entanto, mesmo com a padronização
da ANSI e do ISO, o SQL possui muitas variações e extensões
produzidas pelos fabricantes de SGBD.
Tipos de linguagem SQL
• A linguagem SQL pode ser dividida em tipos de acordo com a sua
funcionalidade. Os tipos usados nos sistemas gerenciadores de banco
de dados são definidos a seguir.
Data Definition Language (DDL)
• É o tipo de linguagem que interage com os objetos do banco de dados:
tabelas, procedures, functions, views, triggers, entre outros. Cada
SGBD tem seus manuais técnicos com a lista completa de comandos
DDL e suas respectivas sintaxes completas.
Conectando e desconectando ao
servidor BD (xampp)
• Para se conectar ao servidor, você geralmente precisa fornecer um
nome de usuário MySQL quando você invoca mysql e,
provavelmente, uma senha. Se o servidor for executado em uma
máquina diferente da em que você faz login, você também deve
especificar um nome de host. Entre em contato com seu administrador
para saber quais parâmetros de conexão você deve usar para conectar
(ou seja, qual host, nome de usuário e senha usar). Uma vez que você
sabe os parâmetros adequados, você deve ser capaz de se conectar
assim:
Conectando ao servidor BD
(xampp)
Acesse o Shell pelo
painel de controle
XAMPP
Conectando ao servidor BD
(xampp)
Será aberto um
prompt de comando.

Portanto, é hora de
“logar” ao servidor.
Conectando ao servidor BD
(xampp)
E para fazer isso,
devemos executar os
comandos a seguir:
Conectando ao servidor BD
(xampp)
Conectando ao
servidor:

mysql -h host -
u user
Conectando ao servidor BD
(xampp)
Desconectando ao
servidor:

mysql> QUIT
Conectando ao servidor BD
(xampp)
Desconectando ao
servidor:

mysql> QUIT
Consultando versão
Aqui está uma
consulta simples que
pede ao servidor
para lhe dizer seu
número de versão e
a data atual.
mysql> SELECT
VERSION(),
CURRENT_DATE;
Consultando versão
Aqui está uma
consulta simples que
pede ao servidor
para lhe dizer seu
número de versão e
a data atual.
mysql> SELECT
VERSION(),
CURRENT_DATE;
Criando Banco de Dados
CREATE DATABASE
Para criar um
banco de dados
use os seguintes
comandos.
mysql> CREATE
DATABASE
banco_de_dados;
Criando Banco de Dados usando uma
condição CREATE DATABASE IF NOT EXISTS
Para criar um banco
de dados com uma
condição de
existência, use os
seguintes comandos.
mysql> CREATE
DATABASE IF NOT
EXISTS
banco_de_dados;
Entrando no banco de dados USE
Para acionar o
banco de dados e
criar as tabelas use
o seguinte
comando:
mysql> USE
banco_de_dados;
Entrando no banco de dados USE
Para acionar o
banco de dados e
criar as tabelas use
o seguinte
comando:
mysql> USE
banco_de_dados;
Criando uma tabela
CREATE TABLE
Para criar uma tabela
use os seguintes
comandos:
mysql> CREATE
TABLE pet
(id_associado
INT(10),
nome VARCHAR(40),

sexo CHAR(1));
Poder do
cérebro
Agora é com você!
Crie um banco de
dados e uma tabela.
Informações relevantes
1. Baixe o arquivo fornecido através do link abaixo.
https://1drv.ms/x/s!Auug9o7Tm9wdr9EPHclnV815Oph3TQ?e=xD76e
B
2. Acesse a pasta do Excel e veja com atenção as colunas da tabela
(nome, tipo de dados, etc).
3. Acesse o Sistema de Gerenciamento de Banco de Dados que achar
melhor;
4. Crie um banco de dados chamado “sindicato”.
5. Crie uma tabela idêntica a do arquivo Excel fornecido em anexo.
Dica: O nome da tabela está na planilha e o nome das colunas estão
no cabeçalho da tabela.
Restrições
As restrições SQL são usadas para especificar regras para os
dados em uma tabela.
As restrições são usadas para limitar o tipo de dados que
podem entrar em uma tabela. Isso garante a precisão e
confiabilidade dos dados na tabela. Se houver alguma
violação entre a restrição e a ação de dados, a ação será
abortada.
Restrições
NOT NULL - Garante que uma coluna não pode ter um valor NULL
UNIQUE - Garante que todos os valores em uma coluna sejam diferentes
PRIMARY KEY - Uma combinação que identifica com exclusividade cada linha
em uma tabela. Aliases: NOT NULL UNIQUE
FOREIGN KEY - Impede ações que destruam ligações entre tabelas
CHECK - Garante que os valores em uma coluna satisfaçam uma condição
específica
DEFAULT - Define um valor padrão para uma coluna se nenhum valor for
especificado
CREATE INDEX - Usado para criar e recuperar dados do banco de dados muito
rapidamente
Restrição NULL ou NOT NULL
Por padrão, uma coluna pode conter valores NULL.
A restrição impõe uma coluna para NÃO aceitar valores NULL. NOT NULL
Isso impõe que um campo contenha sempre um valor, o que significa
que você não pode inserir um novo registro ou atualizar um registro sem
adicionar um valor a este campo.

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
    nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    endereco_pessoas varchar(255) NULL
);
Restrição NULL ou NOT NULL

Para criar a restrição


`endereço_pessoas` na tabela
`pessoas` após ela ser criada devemos
usar o seguinte código SQL.

ALTER TABLE pessoas
    MODIFY endereco_pessoas VARCHAR(255) NOT
NULL;
Restrição UNIQUE 
A restrição garante que todos os valores em uma coluna sejam
diferentes.
Tanto as restrições fornecem uma garantia de exclusividade para
uma coluna ou conjunto de colunas.

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    endereco_pessoas varchar(255) NULL,
UNIQUE (id_pessoas)
);
Restrição UNIQUE 
Para nomear uma restrição e definir uma restrição em
várias colunas, use a seguinte sintaxe SQL:

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    endereco_pessoas varchar(255) NULL,
CONSTRAINT uc_pessoas UNIQUE (id_pessoas, cpf_pessoas)
);
Restrição UNIQUE em ALTER TABLE

Para criar uma restrição na coluna


"id_pessoas" quando a tabela já
estiver criada, use o seguinte SQL:

ALTER TABLE pessoas
ADD UNIQUE (id_pessoas);
Restrição UNIQUE em ALTER TABLE

Para nomear uma restrição e definir uma


restrição em várias colunas, use a
seguinte sintaxe SQL:

ALTER TABLE pessoas
ADD CONSTRAINT uc_pessoas UNIQUE (id_pessoas,
cpf_pessoas);
Restrição PRIMARY KEY 
As chaves primárias devem conter valores UNIQUE e não podem conter
valores NULL.
Uma tabela pode ter apenas uma chave primária; e na tabela, esta chave
primária pode consistir em colunas únicas ou múltiplas (campos).

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    endereco_pessoas varchar(255) NULL,
PRIMARY KEY (id_pessoas)
);
Restrição PRIMARY KEY  
Para nomear uma restrição e definir uma restrição em
várias colunas, use a seguinte sintaxe SQL:

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    endereco_pessoas varchar(255) NULL,
CONSTRAINT pk_pessoas PRIMARY KEY (id_pessoas, cpf_pessoas)
);
Restrição PRIMARY KEY em ALTER
TABLE
Para criar uma restrição na coluna
"id_pessoas" quando a tabela já
estiver criada, use o seguinte SQL:

ALTER TABLE pessoas
ADD PRIMARY KEY (id_pessoas);
Restrição PRIMARY KEY em ALTER
TABLE
Para nomear uma restrição e definir uma
restrição em várias colunas, use a
seguinte sintaxe SQL:

ALTER TABLE pessoas
ADD CONSTRAINT pk_pessoas PRIMARY
KEY (id_pessoas, cpf_pessoas);
Restrição FOREIGN KEY 
é um campo (ou coleta de campos) em uma tabela, que se refere ao em outra tabela.
A tabela com a chave estrangeira é chamada de tabela pobre, dependente ou filho, e
a tabela com a chave principal é chamada de tabela principal, referenciada ou pai.

CREATE TABLE statusservico (
    id_statusservico int NOT NULL,
    id_servico int NOT NULL,
    descricao LONGTEXT,
    PRIMARY KEY (id_statusservico),
    FOREIGN KEY (id_servico) REFERENCES servico(id_servico)
);
Restrição FOREIGN KEY 
Para permitir a nomeação de uma restrição e para definir uma
restrição em uma coluna, use a seguinte sintaxe SQL:
MySQL:
CREATE TABLE statusservico (
    id_statusservico int NOT NULL,
    id_servico int NOT NULL,
    descricao LONGTEXT,
    PRIMARY KEY (id_statusservico),
    CONSTRAINT fk_servico FOREIGN KEY (id_servico)
    REFERENCES servico(id_servico)
);
Restrição FOREIGN KEY 

Para permitir a nomeação de uma restrição e para


definir uma restrição em uma coluna, use a seguinte
sintaxe SQL:
SQL Server / Oracle / MS Access:
CREATE TABLE statusservico (
id_statusservico int NOT NULL PRIMARY KEY,
    descricao LONGTEXT,
id_servico int FOREIGN KEY REFERENCES servico(id_servico)
);
Restrição FOREIGN KEY 
é um campo (ou coleta de campos) em uma tabela, que se refere ao em outra tabela.
A tabela com a chave estrangeira é chamada de tabela pobre, dependente ou filho, e
a tabela com a chave principal é chamada de tabela principal, referenciada ou pai.

CREATE TABLE statusservico (
    id_statusservico int NOT NULL,
    id_servico int NOT NULL,
    descricao LONGTEXT,
    PRIMARY KEY (id_statusservico),
    FOREIGN KEY (id_servico) REFERENCES servico(id_servico)
);
Restrição FOREIGN KEY em ALTER
TABLE
Para nomear uma restrição e definir uma
restrição em várias colunas, use a
seguinte sintaxe SQL:
ALTER TABLE statusservico
ADD CONSTRAINT fk_servico
FOREIGN KEY (id_servico) REFERENCES servico(id_s
ervico);
Excluindo FOREIGN KEY

Na restrição para eliminar uma FOREIGN


KEY, use o seguinte SQL:
MySQL:
ALTER TABLE statusservico
DROP FOREIGN KEY fk_servico;
Excluindo FOREIGN KEY

Na restrição para eliminar uma FOREIGN


KEY, use o seguinte SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE statusservico
DROP CONSTRAINT fk_servico;
Restrição de verificação CHECK
A restrição CHECK é usada para limitar o intervalo de valores que pode
ser colocado em uma coluna.

Se você definir uma restrição CHECK em uma coluna, ela permitirá


apenas determinados valores para esta coluna.

Se você definir uma restrição CHECK em uma tabela, ela poderá limitar
os valores em determinadas colunas com base nos valores de outras
colunas na linha.
Restrição de verificação CHECK
O SQL a seguir cria uma CHECK restrição na coluna "Age" quando a tabela
"Persons" é criada. A CHECK restrição garante que a idade de uma pessoa deve
ser 18 anos ou mais:
MySQL:
CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    idade_pessoas int NOT NULL,
CHECK  (idade_pessoas >= 18)
);
Restrição de verificação CHECK
O SQL a seguir cria uma CHECK restrição na coluna "Age" quando a
tabela "Persons" é criada. A CHECK restrição garante que a idade de uma
pessoa deve ser 18 anos ou mais:
SQL Server / Oracle / MS Access:
CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    idade_pessoas int NOT NULL CHECK  (idade_pessoas >= 18)
);
Restrição de verificação CHECK
O SQL a seguir cria uma CHECK restrição na coluna "Age" quando a tabela "Persons" é
criada. A CHECK restrição garante que a idade de uma pessoa deve ser 18 anos ou
mais:
MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    idade_pessoas int NOT NULL,
CONSTRAINT ch_pessoas CHECK (idade_pessoas >= 18 AND LENGTH(cpf_pessoas) = 11)
);
Restrição CHECK em ALTER TABLE

Para nomear uma restrição e definir uma


restrição em várias colunas, use a
seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE pessoas
ADD CONSTRAINT ch_pessoas CHECK (idade_pessoas
>= 18 AND LENGTH(cpf_pessoas) = 11);
Excluindo CHECK

Na restrição para eliminar uma FOREIGN


KEY, use o seguinte SQL:
SQL Server / Oracle / MS Access:

ALTER TABLE pessoas
DROP CONSTRAINT ch_pessoas;
Excluindo CHECK

Na restrição para eliminar uma FOREIGN


KEY, use o seguinte SQL:
MySQL:

ALTER TABLE pessoas
DROP CHECK ch_pessoas;
Restrição DEFAULT
É usada para definir um valor padrão para uma coluna.
O valor padrão será adicionado a todos os novos registros, se nenhum outro
valor for especificado.
My SQL / SQL Server / Oracle / MS Access:

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    ativo_pessoas int DEFAULT ‘1’,
data_cadastro DATE DEFAULT CURRENT_DATE()
);
Restrição DEFAULT
É usada para definir um valor padrão para uma coluna.
O valor padrão será adicionado a todos os novos registros, se nenhum outro valor
for especificado.

My SQL / SQL Server / Oracle / MS Access:

CREATE TABLE pessoas (
    id_pessoas int NOT NULL,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
    ativo_pessoas int DEFAULT ‘1’,
data_cadastro DATE DEFAULT CURRENT_DATE()
);
Restrição DEFAULT em ALTER TABLE

Para criar uma restrição DEFAULT na


coluna “ativo_pessoas" quando a tabela
já estiver criada, use o seguinte SQL:
MySQL:

ALTER TABLE pessoas
ALTER ativo_pessoas SET DEFAULT '1';
Restrição DEFAULT em ALTER TABLE

Para criar uma restrição DEFAULT na


coluna “ativo_pessoas" quando a tabela
já estiver criada, use o seguinte SQL:
SQL Server:

ALTER TABLE pessoas
ADD CONSTRAINT df_ativo_pessoas DEFAULT ’1’ FOR
ativo_pessoas;
Restrição DEFAULT em ALTER TABLE

Para criar uma restrição DEFAULT na


coluna “ativo_pessoas" quando a tabela
já estiver criada, use o seguinte SQL:
MS Access:

ALTER TABLE pessoas
ALTER COLUMN ativo_pessoas SET DEFAULT ’1’;
Restrição DEFAULT em ALTER TABLE

Para criar uma restrição DEFAULT na


coluna “ativo_pessoas" quando a tabela
já estiver criada, use o seguinte SQL:
Oracle:

ALTER TABLE pessoas
MODIFY ativo_pessoas DEFAULT ’1’;
Excluindo DEFAULT

Para eliminar uma restrição DEFAULT,


use o seguinte SQL:
MySQL:

ALTER TABLE pessoas
ALTER ativo_pessoas DROP DEFAULT;
Excluindo DEFAULT

Para eliminar uma restrição DEFAULT,


use o seguinte SQL:
SQL Server / Oracle / MS Access:

ALTER TABLE pessoas
ALTER COLUMN ativo_pessoas DROP DEFAULT;
Restrição CREATE INDEX
Esta instrução é usada para criar índices em tabelas.
Os índices são usados ​para recuperar dados do banco de dados mais
rapidamente do que de outra forma. Os usuários não podem ver os índices,
eles são usados ​apenas para acelerar as buscas/consultas.
Cria um índice em uma tabela onde valores duplicados são permitidos:
My SQL / SQL Server / Oracle / MS Access:

CREATE INDEX index_pessoas
ON pessoas (nome_pessoas);
CREATE INDEX index_pessoas
ON pessoas (cpf_pessoas, nome_pessoas);
Restrição DROP INDEX

Esta instrução é usada para excluir um


índice em uma tabela.
MS Access:

DROP INDEX index_pessoas
ON pessoas;
Restrição DROP INDEX

Esta instrução é usada para excluir um


índice em uma tabela.
SQL Server:

DROP INDEX pessoas.index_pessoas;
Restrição DROP INDEX

Esta instrução é usada para excluir um


índice em uma tabela.
Oracle:

DROP INDEX index_pessoas;
Restrição DROP INDEX

Esta instrução é usada para excluir um


índice em uma tabela.
MySQL:

ALTER TABLE pessoas


DROP INDEX index_pessoas;
Restrição AUTO_INCREMENT
O AUTO_INCREMENT permite que um número único seja gerado
automaticamente quando um novo registro é inserido em uma tabela.
Muitas vezes este é o campo de chave primária que gostaríamos que fosse criado
automaticamente toda vez que um novo registro fosse inserido.
My SQL

CREATE TABLE pessoas (
    id_pessoas int NOT NULL AUTO_INCREMENT,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
PRIMARY KEY (id_pessoas)
);
Restrição AUTO_INCREMENT
Para permitir que a sequência AUTO_INCREMENT comece com outro
valor, use a seguinte instrução SQL:
My SQL
CREATE TABLE pessoas (
    id_pessoas int NOT NULL AUTO_INCREMENT=100,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
PRIMARY KEY (id_pessoas)
);

ALTER TABLE pessoas AUTO_INCREMENT=100;
Restrição AUTO_INCREMENT
O AUTO_INCREMENT permite que um número único seja gerado
automaticamente quando um novo registro é inserido em uma tabela.
Muitas vezes este é o campo de chave primária que gostaríamos que fosse
criado automaticamente toda vez que um novo registro fosse inserido.
SQL Server

CREATE TABLE pessoas (
    id_pessoas int IDENTITY(1,1) PRIMARY KEY,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
);
Restrição IDENTITY(1,1)
O MS SQL Server usa a palavra-chave IDENTITY para executar um recurso de incremento automático.

No exemplo acima, o valor inicial de IDENTITY é 1 e será incrementado em 1 para cada novo registro.

SQL Server

CREATE TABLE pessoas (
    id_pessoas int IDENTITY(1,1) PRIMARY KEY,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
);
Restrição IDENTITY(10,5)
O MS SQL Server usa a palavra-chave IDENTITY para executar um recurso de
incremento automático.
No exemplo acima, o valor inicial de IDENTITY é 10 e será incrementado de 5
em 5 para cada novo registro.
SQL Server

CREATE TABLE pessoas (
    id_pessoas int IDENTITY(10,5) PRIMARY KEY,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
);
Restrição AUTOINCREMENT
O MS Access usa a palavra-chave AUTOINCREMENT para executar um
recurso de incremento automático.
Por padrão, o valor inicial para AUTOINCREMENT é 1 e será incrementado
em 1 para cada novo registro.
MS Access

CREATE TABLE pessoas (
    id_pessoas AUTOINCREMENT PRIMARY KEY,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
);
Restrição AUTOINCREMENT(10,5)
Para especificar que a coluna "Personid" deve iniciar no valor 10 e
incrementar em 5, altere o incremento automático para
AUTOINCREMENT(10,5).
MS Access

CREATE TABLE pessoas (
    id_pessoas AUTOINCREMENT(10,5) PRIMARY KEY,
cpf_pessoas varchar(11) NOT NULL,
     nome_pessoas varchar(30) NOT NULL,
    sobrenome_pessoas varchar(35) NOT NULL,
);
Restrição CREATE SEQUENCE
No Oracle o código é um pouco mais complicado.
Você terá que criar um campo de incremento automático com o objeto
de sequência (este objeto gera uma sequência numérica).
Use a seguinte sintaxe CREATE SEQUENCE:

Oracle

CREATE SEQUENCE id_pessoas
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
Restrição CREATE SEQUENCE
O código abaixo cria um objeto de sequência chamado id_pessoa, que começa
com 1 e será incrementado em 1. Ele também armazenará em cache até 10
valores para desempenho. A opção de cache especifica quantos valores de
sequência serão armazenados na memória para acesso mais rápido.

Oracle

CREATE SEQUENCE id_pessoas
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
Poder do
cérebro
Agora é com você!
Acesse o banco de
dados que você criou
na atividade anterior.
Informações relevantes
1. Baixe o arquivo fornecido através do link abaixo.
https://1drv.ms/b/s!Auug9o7Tm9wdr9EWRFDL2ZxmWC4vYA
2. Crie uma tabela idêntica a do arquivo PDF fornecido em anexo
junto a tabela da atividade anterior no mesmo banco de dados.
3. Relacione as duas tabelas criando chaves primária e estrangeira.
4. Aplique as restrições que julgar necessárias na tabela criada.
Editor SQL Visual
Descrição dos elementos do
Visual SQL Editor
1. guia da tela inicial. A guia da tela inicial fornece acesso
rápido a conexões, modelos e o assistente de migração do
MySQL. Ao contrário das outras guias principais, a guia da
tela inicial não fecha. Para obter informações adicionais,
consulte o
https://dev.mysql.com/doc/workbench/en/wb-home.html
Descrição dos elementos do
Visual SQL Editor
2. Aba de conexão. Cada conexão feita ao servidor MySQL é
representada por uma guia de conexão separada. Um servidor pode
estar ativo ou inativo quando a guia de conexão para ele é aberta.
Para obter assistência na criação e gerenciamento de conexões
MySQL, consulte:

https://dev.mysql.com/doc/workbench/en/wb-mysql-connections.html
Descrição dos elementos do
Visual SQL Editor
3. guia de consulta SQL. A guia de consulta SQL é uma guia secundária que é
aberta por padrão quando você faz uma conexão com um servidor MySQL.
Cada guia de consulta é identificada exclusivamente por um número
crescente: query 1, query 2e assim por diante. Para fechar uma guia aberta,
clique xem na guia. Para uma visão mais detalhada da edição de consultas
no MySQL Workbench,

https://dev.mysql.com/doc/workbench/en/wb-sql-editor-query-panel.html

Todas as guias de consulta SQL fornecem uma área para editar consultas. Você
pode abrir outros editores especializados em abas nesta mesma área
central. Por exemplo, você pode editar esquemas, tabelas, colunas e assim por
diante. As guias de administração também são abertas nesta área.
Descrição dos elementos do
Visual SQL Editor
4. Barra de menu principal. A barra de menus tem os seguintes menus:
File , Edit , View , Query , Database , Server , Tools , Scripting e
Help . As ações disponíveis para você dependem de qual guia é
selecionada quando você clica em um menu. Para obter uma
descrição dos menus usados ​com frequência, consulte

https://dev.mysql.com/doc/workbench/en/wb-sql-editor-main-menu.ht
ml
Descrição dos elementos do
Visual SQL Editor
5. Barra de ferramentas principal. As ações rápidas nesta barra de ferramentas são (ordenadas da
esquerda para a direita):

• Crie uma nova guia SQL para executar consultas


• Abra um arquivo de script SQL em uma nova guia de consulta
• Abra o Inspetor para o objeto selecionado
• Crie um novo esquema no servidor conectado
• Crie uma nova tabela no esquema ativo no servidor conectado
• Crie uma nova visualização no esquema ativo no servidor conectado
• Crie um novo procedimento armazenado no esquema ativo no servidor conectado
• Crie uma nova função no esquema ativo no servidor conectado
• Pesquisar dados de tabela para texto em objetos selecionados na árvore de esquema da barra
lateral
• Reconectar ao DBMS
Descrição dos elementos do
Visual SQL Editor
6. Ações de atalho. Fornece os seguintes atalhos (ordenados
da esquerda para a direita):

1.Mostrar caixa de diálogo de preferências (consulte a 


“Preferências do Workbench” )
2.Ocultar ou mostrar o painel da barra lateral
3.Ocultar ou mostrar o painel da área de saída
4.Ocultar ou mostrar o painel secundário da barra lateral
Descrição dos elementos do
Visual SQL Editor
7. Painel da barra lateral. A barra lateral possui dois rótulos principais:
Navegador e Informações. Os rótulos são omitidos em alguns hosts.

O Navigator tem duas subguias: Administration (anteriormente


denominada Management ) e Schemas . Você pode mesclar (ou
separar) o conteúdo das duas guias em uma única lista clicando em
mesclar ( ).

A área Informações fornece as subguias Informações do Objeto e


Sessão , que incluem informações somente leitura sobre um objeto
selecionado e sobre a conexão ativa.
Descrição dos elementos do
Visual SQL Editor
7. Painel da barra lateral secundária (Adições SQL). A área SQL
Additions fornece as seguintes subguias:

• Ajuda de Contexto (consulte 
“Adições SQL - Guia Ajuda de Contexto” )
• Trechos (consulte  “Adições SQL - Guia Trechos” )
Descrição dos elementos do
Visual SQL Editor
9. Painel da área de saída. O painel de saída pode exibir um
resumo das consultas executadas nos seguintes formatos:
Saída de ação, Saída de texto ou Saída de histórico. Para obter
informações adicionais, consulte a “Painel de Saída” .
Data Manipulation Language
(DML)
• É o tipo de linguagem que INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

interage com os dados UPDATE table_name


armazenados dentro das tabelas SET column1 = value1, column2 = value2, ...
WHERE condition;

do banco de dados. São


comandos DML: DELETE FROM table_name WHERE condition;
A instrução SQL INSERT INTO
A instrução INSERT INTO é usada para inserir novos registros em uma tabela.
É possível escrever a INSERT INTO declaração de duas maneiras:
1. Especifique os nomes das colunas e os valores a serem inseridos;
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Se você estiver adicionando valores para todas as colunas da tabela, não precisará especificar os nomes das
colunas na consulta SQL. No entanto, certifique-se de que a ordem dos valores esteja na mesma ordem das
colunas na tabela. Aqui, a sintaxe INSERT INTO seria a seguinte:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
Exemplo:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
A instrução SQL UPDATE
A instrução UPDATE é usada para modificar os registros existentes em uma tabela.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

• Nota: Tenha cuidado ao atualizar registros em uma


tabela! Observe a cláusula WHERE na declaração
UPDATE. A cláusula WHERE especifica quais registros
devem ser atualizados. Se você omitir a cláusula
WHERE, todos os registros da tabela serão
atualizados!
A instrução SQL UPDATE
A instrução SQL a seguir atualiza o primeiro telefone (id_tel = 1) com um novo telefone de contato.

UPDATE telefone
SET empresa = ’Bussola Digital’, telefone = ’(62)98456-0065'
WHERE id_tel = 1;
A instrução SQL DELETE
A instrução DELETE é usada para excluir registros existentes em uma tabela.

DELETE FROM table_name WHERE condition;

A instrução SQL a seguir exclui o telefone da empresa “Bussola Digital" da tabela “telefone":

DELETE FROM telefone WHERE id_tel = 1;
A instrução SQL DELETE

• Nota: Tenha cuidado ao deletar registros em uma


tabela! Observe a cláusula WHERE na declaração
DELETE. A cláusula WHERE especifica quais registros
devem ser atualizados. Se você omitir a cláusula
WHERE, todos os registros da tabela serão
atualizados!
Data Query Language (DQL)
• É o tipo de linguagem que cuida SELECT atributo FROM
da parte de queries (consultas) relação WHERE condição
aos dados. Apesar de interagir
com os dados como a DML, ela
não produz alterações neles, SELECT * FROM pessoas
serve apenas para consulta. WHERE excluido = 0

SELECT * FROM pessoas


WHERE nome LIKE HE%
Instrução SELECT ... INTO
id nome sexo num_insc estado_civil conjuge data_nasc
18ARNALDO BATISTA DA SILVA 1 3340 2 IRENE CANUTO DA SILVA BATISTA 28/12/1967
19GESSY ETERNO DE MAGALHÃES 1 1569 2NULL 05/01/1959
20JANDER HONORATO DE PAIVA 1 3237 2NULL 02/07/1956
21MARIA VALDENE DE MELO DA SILVA 2 4045 2TIAGO BATISTA DOS SANTOS 14/12/1990
22TIAGO BATISTA DOS SANTOS 1 4046 2NULL 06/09/1990
23MARIA DE FATIMA DE JESUS 2 3536 1NULL 29/08/1958
24NILZA DE ANDRADE CAMPOS 2 2056 2NULL 05/12/1953
25ENIVALDO MOREIRA DA SILVA 1 3644 2NULL 11/11/1969
26ANTONIO GOMES DE SOUSA 1 2620 2GELZA FRANCISCA DA SILVA 15/06/1958
27JOSÉ ANTONIO GOMES DE SOUSA 1 2605 2NULL 15/05/1986
28NEIRIVALDO JOSE PIMENTA 1 3657 1NULL 03/12/1974
29GENILCE DE FÁTIMA DOS SANTOS 2 3324 4NULL 15/01/1970
30CELSO FERREIRA DA SILVA 1 1983 2NULL 06/12/1962
Instrução SELECT ... INTO
• Abaixo está uma seleção da tabela “servidor" no banco de dados que visualizamos
no slide anterior:

SELECT * FROM servidor;

Caso seja necessário somente algumas colunas em especial:

SELECT id, nome, sexo, data_nasc FROM servidor;


Instrução SELECT ... INTO
• Abaixo está uma seleção da tabela “servidor" no banco de dados que visualizamos no
slide anterior:

SELECT * FROM servidor;

Caso seja necessário somente algumas colunas em especial:

SELECT id, nome, sexo, data_nasc FROM servidor;

Será visualizado conforme o slide seguinte:


Instrução SELECT ... INTO
id nome sexo data_nasc
18ARNALDO BATISTA DA SILVA 1 28/12/1967
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
20JANDER HONORATO DE PAIVA 1 02/07/1956
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
23MARIA DE FATIMA DE JESUS 2 29/08/1958
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
26ANTONIO GOMES DE SOUSA 1 15/06/1958
27JOSÉ ANTONIO GOMES DE SOUSA 1 15/05/1986
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
30CELSO FERREIRA DA SILVA 1 06/12/1962
Cláusula WHERE (ONDE)
A cláusula WHERE é usada para filtrar registros.

Ele é usado para extrair apenas os registros que atendem a uma condição
especificada.

SELECT * FROM servidor WHERE id = 18;

id nome sexo data_nasc


18ARNALDO BATISTA DA SILVA 1 28/12/1967
Cláusula WHERE (ONDE)
A cláusula WHERE é usada para filtrar registros.

Ele é usado para extrair apenas os registros que atendem a uma condição
especificada.

SELECT * FROM servidor WHERE data_nasc = 1967-12-28;

id nome sexo data_nasc


18ARNALDO BATISTA DA SILVA 1 28/12/1967
Cláusula WHERE (ONDE)
A cláusula WHERE é usada para filtrar registros.

Ele é usado para extrair apenas os registros que atendem a uma condição
especificada.

SELECT * FROM servidor WHERE data_nasc >= 1960-01-01;

Veja o resultado a seguir:


Cláusula WHERE (ONDE)
id nome sexo data_nasc
18ARNALDO BATISTA DA SILVA 1 28/12/1967
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
27JOSÉ ANTONIO GOMES DE SOUSA 1 15/05/1986
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
30CELSO FERREIRA DA SILVA 1 06/12/1962
Cláusula WHERE (ONDE)
A cláusula WHERE é usada para filtrar registros.

Ele é usado para extrair apenas os registros que atendem a uma condição
especificada.

SELECT * FROM servidor WHERE nome LIKE %SILVA%;

O resultado da tabela será:


Cláusula WHERE (ONDE)

id nome sexo data_nasc


18ARNALDO BATISTA DA SILVA 1 28/12/1967
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
30CELSO FERREIRA DA SILVA 1 06/12/1962
Cláusula WHERE (ONDE)
A cláusula WHERE é usada para filtrar registros.

Ele é usado para extrair apenas os registros que atendem a uma condição
especificada.

SELECT * FROM servidor WHERE nome LIKE J%;

O resultado da tabela será:


Cláusula WHERE (ONDE)
id nome sexo data_nasc
20JANDER HONORATO DE PAIVA 1 02/07/1956
27JOSÉ ANTONIO GOMES DE SOUSA 1 15/05/1986
Operadores AND, OR e NOT
A cláusula WHERE pode ser combinada com os operadores AND, OR e NOT

Os operadores AND e OR são usados ​para filtrar registros com base em mais de
uma condição:

O operador AND exibe um registro se todas as condições separadas por AND forem
TRUE.
O operador OR exibe um registro se alguma das condições separadas por OR for
TRUE.
O operador NOT exibe um registro se a(s) condição(ões) NÃO for(em)
VERDADEIRA.
Operadores AND
A seguinte instrução SQL seleciona todos os campos de "servidor" onde nome
começa com “J" E termina com “SOUZA":

SELECT * FROM servidor WHERE nome LIKE J% AND nome


LIKE %SOUZA;

O resultado da tabela será:


Operadores AND
id nome sexo data_nasc
27JOSÉ ANTONIO GOMES DE SOUSA 1 15/05/1986
Operadores OR
A seguinte instrução SQL seleciona todos os campos de "servidor" onde nome
começa com “J" OU termina com “SOUZA":

SELECT * FROM servidor WHERE nome LIKE J% OR nome


LIKE %SOUZA;

O resultado da tabela será:


Operadores OR
id nome sexo data_nasc
20JANDER HONORATO DE PAIVA 1 02/07/1956
26ANTONIO GOMES DE SOUSA 1 15/06/1958
27JOSÉ ANTONIO GOMES DE SOUSA 1 15/05/1986
Operadores NOT
A seguinte instrução SQL seleciona todos os campos de "servidor" onde nome NÃO
começa com “J:

SELECT * FROM servidor WHERE NOT nome LIKE J%;

O resultado da tabela será:


Operadores NOT
id nome sexo data_nasc
18ARNALDO BATISTA DA SILVA 1 28/12/1967
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
23MARIA DE FATIMA DE JESUS 2 29/08/1958
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
26ANTONIO GOMES DE SOUSA 1 15/06/1958
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
30CELSO FERREIRA DA SILVA 1 06/12/1962
Operadores LIKE
O operador LIKE é usado em uma cláusula WHERE para procurar um padrão
especificado em uma coluna.
Existem dois curingas frequentemente usados ​em conjunto com o operador LIKE:
O sinal de porcentagem (%) representa zero, um ou vários caracteres.
O sinal de sublinhado (_) representa um único caractere.
O sinal de porcentagem e o sublinhado também podem ser usados ​em combinações!

SELECT * FROM servidor WHERE nome LIKE J%;

O resultado da tabela será:


Operadores LIKE
id nome sexo data_nasc
20JANE HONORATO DE PAIVA 1 02/07/1956
27JONE ANTONIO GOMES DE SOUSA 1 15/05/1986

O resultado assima será o mesmo para a sintaxe abaixo:

SELECT * FROM servidor WHERE nome LIKE J_NE%;


Operadores IN e BETWEEN
id categoria historico valor_nota data_nota
26811 1 REC. DA MENSALIDADE DE Jan/2019 DO(A) ASSOCIADO(A) AURELIANO DE ASSIS 20.00 24/05/2019
22055 2 MARIA DE JESUS MAGALHÃES - ESTORNO DE MENSALIDADES QUE FOI PAGA EM DUPLICIDADE POIS JÁ DESCONTAVA EM 152.80 12/09/2018
APOSENTADORIA
3446 3 ESTORNO DE VALOR CHEQUE COMPENSADO 852.068 ORLANDO LUIZ 0.67 18/05/2016
1898 4 SUDARIO BORGES NUNES 400.00 21/03/2016
917 5 auto posto biquinha ltda 107.00 12/01/2016
25596 6 TARIFA DE TELEFONE 169.38 11/02/2019
915 7 EDUARDO CUNHA DA SILVA - CERTIFICADO DIGITAL STR CERE 380.00 11/01/2016
24890 8 PAULO JOSE FIGUEIREDO 18.87 30/01/2019
26397
26432O resultado assima será o mesmo para a sintaxe abaixo:
9
10
DIVINO FRANCISCO LOPES RIO VERDE
MORAQUIA MAIARA APARECIDA SILVA
100.00
37.00
29/04/2019
30/04/2019
26403 12 RADIO CRISTAL FM 250.00 01/04/2019
26671 14 GRATIFICAÇÃO REUNIÃO DO CONSELHO FISCAL DIA 11/03/2019 - JOSE PEDRO V.FILHO 90.00 09/05/2019
909 15 REAL LIMPEZA COMERCIO E SERVIÇOS LTDA-ME 40.00 06/01/2016
2077 16 RIP LIP CONFECÇÕES - CAMISETAS DIA DA MULHER 2700.00 11/03/2016
1809
2575SELECT * FROM servidor WHERE nome LIKE J_NE%;
17
18
JN TRANSPORTE E TURISMO LTDA-ME, TRANSPORTE DE SÓCIOS AO INCRA
BRANK S MAGAZINE
900.00
57.15
15/02/2016
06/04/2016
DIVINO CLAUDIO DA CRUZ - SERVIÇOS PRESTADOS EM ENTREGA DE GUIAS CONFEDERATIVAS NO MUNICÍPIO DE IPIRANGA 270.00
26030 19 01/03/2019
DE GOIÁS
14308 20 JADER AZEVEDO GONÇALVES 110.00 22/08/2017
1496 21 SALÁRIO FUNCIONÁRIA PRISCILA 520.00 29/02/2016
26732 22 ADIANTAMENTO GRATIFICAÇÃO DONIZETE A.PEREIRA 1197.60 20/05/2019
23795 23 E.S MATERIAIS P/ CONSTRUÇÕES LTDA -EDIMACO 1215.00 19/11/2018
25994 24 JADER AZEVEDO GONÇALVES - INFORMÁTICA 45.00 01/03/2019

910 26 MY CAR ACESSÓRIOS 210.00 07/01/2016


Operadores IN
O operador IN permite especificar vários valores em uma cláusula WHERE.
O operador IN é um atalho para várias condições OR.

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

O resultado da tabela será:


Operadores IN
Usando o caso:

SELECT  id_contabilidade, categoria, historico,


valor_nota, data_nota FROM contabilidade
WHERE categoria IN (26, 8, 19);
id categoria historico valor_nota data_nota
24890 8 PAULO JOSE FIGUEIREDO 18.87 30/01/2019
DIVINO CLAUDIO DA CRUZ - SERVIÇOS PRESTADOS EM ENTREGA DE
26030 19 270.00 01/03/2019
GUIAS CONFEDERATIVAS NO MUNICÍPIO DE IPIRANGA DE GOIÁS
910 26 MY CAR ACESSÓRIOS 210.00 07/01/2016
Operadores BETWEEN
O operador BETWEEN seleciona valores dentro de um determinado intervalo. Os
valores podem ser números, texto ou datas.
O operador BETWEEN é inclusivo: os valores inicial e final são incluídos.
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

O resultado da tabela será:


Operadores BETWEEN
Usando o caso:
SELECT id_contabilidade, categoria, historico, valor_nota,
data_nota FROM contabilidade WHERE categoria BETWEEN 8 AND 19;
id categoria historico valor_nota data_nota
24890 8 PAULO JOSE FIGUEIREDO 18.87 30/01/2019
26397 9 DIVINO FRANCISCO LOPES RIO VERDE 100.00 29/04/2019
26432 10 MORAQUIA MAIARA APARECIDA SILVA 37.00 30/04/2019
26403 12 RADIO CRISTAL FM 250.00 01/04/2019
26671 14 GRATIFICAÇÃO REUNIÃO DO CONSELHO FISCAL DIA 11/03/2019 - JOSE 90.00 09/05/2019
PEDRO V.FILHO
909 15 REAL LIMPEZA COMERCIO E SERVIÇOS LTDA-ME 40.00 06/01/2016
2077 16 RIP LIP CONFECÇÕES - CAMISETAS DIA DA MULHER 2700.00 11/03/2016
1809 17 JN TRANSPORTE E TURISMO LTDA-ME, TRANSPORTE DE SÓCIOS AO INCRA 900.00 15/02/2016
2575 18 BRANK S MAGAZINE 57.15 06/04/2016
DIVINO CLAUDIO DA CRUZ - SERVIÇOS PRESTADOS EM ENTREGA DE
26030 19 270.00 01/03/2019
GUIAS CONFEDERATIVAS NO MUNICÍPIO DE IPIRANGA DE GOIÁS
Palavra-chave ORDER BY
A palavra-chave ORDER BY é usada para classificar o conjunto de resultados em
ordem crescente ou decrescente.

SELECT * FROM servidor ORDER BY nome ASC;

O resultado da tabela será:


Palavra-chave ORDER BY
id Nome (A – Z) sexo data_nasc
26ANTONIO GOMES DE SOUSA 1 15/06/1958
18ARNALDO BATISTA DA SILVA 1 28/12/1967
30CELSO FERREIRA DA SILVA 1 06/12/1962
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
23MARIA DE FATIMA DE JESUS 2 29/08/1958
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
Cláusula LIMIT
A cláusula LIMIT é usada para especificar o número de registros a serem
retornados.
A cláusula LIMIT é útil em tabelas grandes com milhares de registros. Retornar um
grande número de registros pode afetar o desempenho.

SELECT * FROM servidor LIMIT 3;
SELECT * FROM servidor LIMIT 0, 3;

O resultado da tabela será:


Cláusula LIMIT
id Nome (A – Z) sexo data_nasc
26ANTONIO GOMES DE SOUSA 1 15/06/1958
18ARNALDO BATISTA DA SILVA 1 28/12/1967
30CELSO FERREIRA DA SILVA 1 06/12/1962
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
23MARIA DE FATIMA DE JESUS 2 29/08/1958
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
Cláusula LIMIT
A cláusula LIMIT abaixo retornar a uma tabela começando na terceira tupla (linha)
até a terceira linha seguinte.

SELECT * FROM servidor LIMIT 3, 3;

O resultado da tabela será:


Cláusula LIMIT
id Nome (A – Z) sexo data_nasc
26ANTONIO GOMES DE SOUSA 1 15/06/1958
18ARNALDO BATISTA DA SILVA 1 28/12/1967
30CELSO FERREIRA DA SILVA 1 06/12/1962
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
23MARIA DE FATIMA DE JESUS 2 29/08/1958
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
Cláusula LIMIT...OFFSET
A cláusula LIMIT abaixo retornar a uma tabela começando na terceira tupla (linha)
até a terceira linha seguinte.

SELECT * FROM servidor LIMIT 6 OFFSET 3;

O resultado da tabela será:


Cláusula LIMIT
id Nome (A – Z) sexo data_nasc
26ANTONIO GOMES DE SOUSA 1 15/06/1958
18ARNALDO BATISTA DA SILVA 1 28/12/1967
30CELSO FERREIRA DA SILVA 1 06/12/1962
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
23MARIA DE FATIMA DE JESUS 2 29/08/1958
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
Cláusula GROUP BY
A cláusula LIMIT abaixo retornar a uma tabela começando na terceira tupla (linha)
até a terceira linha seguinte.

SELECT * FROM servidor GROUP BY sexo;

O resultado da tabela será:


Cláusula GROUP BY
id Nome (A – Z) sexo data_nasc
26ANTONIO GOMES DE SOUSA 1 15/06/1958
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970

SELECT id, sexo, COUNT(sexo) AS quant_sexo  FROM servidor GROUP BY sexo;


id sexo quant_sexo
26 1 7
29 2 4

SELECT id, IF(sexo=1, ‘HOMENS’, ‘MULHERES’) AS sexo, COUNT(sexo) AS


quant_sexo FROM servidor GROUP BY sexo;
id sexo quant_sexo
26 HOMENS 7
29 MULHERES 4
Cláusula JOIN
• Tabela associado
id nome sexo data_nasc
18ARNALDO BATISTA DA SILVA 1 28/12/1967
19GESSY ETERNO DE MAGALHÃES 1 05/01/1959
21MARIA VALDENE DE MELO DA SILVA 2 14/12/1990
22TIAGO BATISTA DOS SANTOS 1 06/09/1990
23MARIA DE FATIMA DE JESUS 2 29/08/1958
24NILZA DE ANDRADE CAMPOS 2 05/12/1953
25ENIVALDO MOREIRA DA SILVA 1 11/11/1969
26ANTONIO GOMES DE SOUSA 1 15/06/1958
28NEIRIVALDO JOSE PIMENTA 1 03/12/1974
29GENILCE DE FÁTIMA DOS SANTOS 2 15/01/1970
30CELSO FERREIRA DA SILVA 1 06/12/1962
Cláusula JOIN
• Tabela familia
id nome_familia grau_parentesco cod_associado data_nasc
27 IRENE CANUTO DA SILVA BATISTA ESPOSA 152596ac9c892707b81a62049738caaf 31/07/1977
31 NELSON FERREIRA BARBOSA ESPOSO a98295ee29658a793ed067bc63d97a5c 17/10/1955
32 MARIA JOSÉ DE SANTO ANTÔNIO SILVA MARTINS ESPOSA 43828a01c4ceebd972064ca5b3a5915d 13/06/1959
33 IVANIA MARIA PIMENTA DA SILVA ESPOSA 5312f8900dd35462e9dc5e5e19e70cfd 13/06/1970
34 AMELIA DIAS SILVA FILHA 8cf4b13c8011e45b01692aac4b27881a 10/09/2011
35 JAQUELINE SANTANA DIAS ESPOSA 8cf4b13c8011e45b01692aac4b27881a 09/08/1988
37 MARIA ROSA FERREIRA GOMES SILVA ESPOSA 273722a363264600d9634406b7afebe1 27/04/1967
38 ROSAIR SILVA ESPOSO de02be61dae5a8e28cbaa4e3823d2a2a 15/06/1967
39 ONOFRA DA SILVA ESPOSA e81717c784496c30d32738772a71a024 29/08/1961
42 MARCIA JOSE DA SILVA FRANCA ESPOSA 8353f0ee51536bd37d43c8e13da483f8 20/01/1972
43 SEBASTIÃO TAVARES ROSA ESPOSO 32a88f49112d9b7289390091817f57c6 05/05/1965
44 ILMA VANESSA DA SILVA ESPOSA 8e907fc8820eb74939b5aaf094287cb7 24/01/1995
45 NUBIA MARIA ROSA CHAVES ESPOSA a48b9910b9ad16447bd4e572d1101047 13/01/1989
46 DAIANE MARQUES DA SILVA ESPOSA 26ac2960207ea70b20f0fa8e3f9c1510 19/09/1991
49 MARIA GONÇALVES DOS SANTOS ESPOSA ed308351da2bb7d52aea064e16aa2f3c 15/05/1961
51 CLAUDIA MARIA MORAES DA SILVA ESPOSA 1670dd4c68eb4f6c1804cfa5e10f8962 17/01/1970
52 ELIAMAR AMARAL ESPOSA e66dd319da9d8256f05938f395232f41 21/11/1972
53 ROSANA RODRIGUES DA SILVA REIS ESPOSA 701c889b1609ec7feab6fbabdbbfc12e 15/06/1975
54 LUCIMAR BARROS GALVÃO ESPOSA 9ecdc518b2399d13a900be624d9692a5 03/06/1979
55 ANDREIA PATRICIA DE BORBA ESPOSA 19fd31d9a747a9691abfaeb6320b854b 22/03/1977
56 JOAO JOSE DA SILVA FILHO ESPOSO 192a4f4537448501403bdaa52102e697 10/01/1959
57 IVO EVANGELISTA DE OLIVEIRA ESPOSO a0a52010c92eb6737549f59884c716cc 06/04/1977
58 JOSE CARLOS SACERDOTE ESPOSO 88082d269656c53a8f2e60bd9643ee8a 29/11/1971
59 EVA GONÇALVES DE MORAES ESPOSA 79144c399ae9015a94e3a6a64fee7aa7 30/08/1975
60 GENECY SILVERIO FERREIRA ESPOSO 6fe623524fc819ebe809e70dbda7f195 04/11/1979
62 MARIA SALETE FORNAZIER LOPES ESPOSA 2ec1ea3b54810820c089989e4150ac8e 02/03/1955
63 DANIEL REGIS TRINDADE FILHO a2478976f0f0b2e17212729757969b70 25/11/2004
Cláusula INNER JOIN
INNER JOIN
• Retorna registros que
possuem valores
correspondentes em ambas as
tabelas

• SELECT id_associado, nome, sexo,


nome_familia, grau_parentesco
FROM associado
INNER JOIN familia ON cod_associado=id_ass
ociado;
Cláusula LEFT JOIN
LEFT JOIN
retorna todos os registros da
tabela da esquerda
(associado) e os registros
correspondentes (se houver) da
tabela da direita (familia).

• SELECT id_associado, nome, sexo,


nome_familia, grau_parentesco
FROM associado
LEFT JOIN familia ON cod_associado=id_asso
ciado;
Cláusula RIGHT JOIN
RIGHT JOIN
retorna todos os registros da
tabela da DIREITA (familia) e
os registros correspondentes
(se houver) da tabela da
ESQUERDA (associado).

• SELECT id_associado, nome, sexo,


nome_familia, grau_parentesco
FROM associado
RIGHT JOIN familia ON cod_associado=id_ass
ociado;
Cláusula RIGHT JOIN
RIGHT JOIN
retorna todos os registros da
tabela da DIREITA (familia) e
os registros correspondentes
(se houver) da tabela da
ESQUERDA (associado).

• SELECT id_associado, nome, sexo,


nome_familia, grau_parentesco
FROM associado
RIGHT JOIN familia ON cod_associado=id_ass
ociado;
Cláusula CROSS JOIN
CROSS JOIN
retorna todos os registros de
ambas as tabelas (associado e
familia).
• SELECT id_associado, nome, sexo,
nome_familia, grau_parentesco
FROM associado
CROSS JOIN familia ON cod_associado=id_ass
ociado;
Cláusula UNION
CROSS JOIN
retorna todos os registros de
ambas as tabelas (associado e
familia).
• SELECT id_associado, nome, sexo,
nome_familia, grau_parentesco
FROM associado
CROSS JOIN familia ON cod_associado=id_ass
ociado;
Cláusula UNION
CROSS JOIN
retorna todos os registros de
ambas as tabelas (associado e
familia).
• SELECT id_associado, nome, sexo,
nome_familia, grau_parentesco
FROM associado
CROSS JOIN familia ON cod_associado=id_ass
ociado;
Poder do
cérebro
Agora é com você!
É hora de fazer o
download do banco de
dados encaminhado
em SQL através do link.
Informações relevantes
1. Baixe o arquivo SQL fornecido através do link abaixo.
https://1drv.ms/u/s!Auug9o7Tm9wdr9EiJDMYq1NsgBC4MQ?e=QFGPqI
2. Crie um banco de dados.
3. Importe o arquivo com as tabelas que nele há através do WORKBANCH
ou PHPMYADMIN.
4. Ajude o Heder a realizar as seleções e obter resultados usando os
comandos vistos acima.
DATA CONTROL LANGUAGE (DCL)

É o tipo de linguagem que interage com a parte de


segurança do banco de dados. Baseado na política de
segurança definida para o sistema desenvolvido, é com
esses comandos que podemos garantir quais dados
serão acessados, que tipo de ações poderão ser
realizadas por uma pessoa ou um grupo de pessoas.
Privilégios GRANT e REVOKE
 Você pode usasr privilégios GRANT e REVOKE em vários objetos de banco de dados no MySQL. Você
pode então visualizar os privilégios atribuídos a um usuário usando o comando SHOW GRANTS. Veremos
como conceder e revogar privilégios em tabelas, funções e procedimentos no MySQL.

GRANT privileges ON object TO user;


GRANT SELECT, INSERT, UPDATE, DELETE ON pessoas TO ’root’@’localhost’;
GRANT SELECT ON familia TO ’root’@’localhost’;
Privilégios GRANT e REVOKE
Privilégios Descrição
ALL [PRIVILEGES] Concede todos os privilégios no nível de acesso especificado, exceto GRANT OPTION
e PROXY.
ALTER Habilite o uso de ALTER TABLE. Níveis: Global, banco de dados, tabela.
ALTER ROUTINE Permita que rotinas armazenadas sejam alteradas ou descartadas. Níveis: Global,
banco de dados, rotina.
CREATE Habilite a criação de banco de dados e tabela. Níveis: Global, banco de dados,
tabela.
CREATE ROUTINE Habilite a criação de rotina armazenada. Níveis: Global, banco de dados.
CREATE TABLESPACE Ative espaços de tabela e grupos de arquivos de log para serem criados, alterados
ou eliminados. Nível: global.
CREATE TEMPORARY TABLE Habilite o uso de CREATE TEMPORARY TABLE. Níveis: Global, banco de dados.
S
CREATE USER Habilite o uso de CREATE USER, DROP USER, RENAME USERe 
REVOKE ALL PRIVILEGES. Nível: global.
Privilégios GRANT e REVOKE
Privilégios Descrição
CREATE VIEW Permita que as visualizações sejam criadas ou alteradas. Níveis: Global, banco de
dados, tabela.
DELETE Habilite o uso de DELETE. Nível: Global, banco de dados, tabela.
DROP Permita que bancos de dados, tabelas e exibições sejam descartados. Níveis: Global,
banco de dados, tabela.
EVENT Habilite o uso de eventos para o Agendador de Eventos. Níveis: Global, banco de
dados.
EXECUTE Habilita o usuário a executar rotinas armazenadas. Níveis: Global, banco de dados,
rotina.
FILE Permita que o usuário faça com que o servidor leia ou grave arquivos. Nível: global.
GRANT OPTION Permita que privilégios sejam concedidos ou removidos de outras contas. Níveis:
Global, banco de dados, tabela, rotina, proxy.
INDEX Habilite os índices a serem criados ou descartados. Níveis: Global, banco de dados,
tabela.
Privilégios GRANT e REVOKE
Privilégios Descrição
INSERT Habilite o uso de INSERT. Níveis: Global, banco de dados, tabela, coluna.
LOCK TABLES Habilite o uso de LOCK TABLEStabelas para as quais você tem SELECT
 privilégio. Níveis: Global, banco de dados.
PROCESS Permita que o usuário veja todos os processos com SHOW PROCESSLIST. Nível:
global.
PROXY Ative o proxy de usuário. Nível: De usuário para usuário.
REFERENCES Habilite a criação de chave estrangeira. Níveis: Global, banco de dados, tabela,
coluna.
RELOAD Habilite o uso de FLUSHoperações. Nível: global.
REPLICATION CLIENT Permita que o usuário pergunte onde estão os servidores de origem ou de
réplica. Nível: global.
REPLICATION SLAVE Habilite as réplicas para ler eventos de log binários da origem. Nível: global.
SELECT Habilite o uso de SELECT. Níveis: Global, banco de dados, tabela, coluna.
Privilégios GRANT e REVOKE
Privilégios Descrição
SHOW DATABASES Habilite SHOW DATABASESpara mostrar todos os bancos de dados. Nível: global.
SHOW VIEW Habilite o uso de SHOW CREATE VIEW. Níveis: Global, banco de dados, tabela.
SHUTDOWN Habilite o uso do desligamento do mysqladmin . Nível: global.
SUPER Habilite o uso de outras operações administrativas como CHANGE MASTER TO, KILL, 
PURGE BINARY LOGS, SET GLOBALe mysqladmin debug command. Nível: global.
TRIGGER Habilite as operações de gatilho. Níveis: Global, banco de dados, tabela.
UPDATE Habilite o uso de UPDATE. Níveis: Global, banco de dados, tabela, coluna.
USAGE Sinónimo de “ sem privilégios ”
Privilégios GRANT
 Você pode GRANT (conceder) privilégios em vários objetos de banco de dados no MySQL. Você pode
então visualizar os privilégios atribuídos a um usuário usando o comando SHOW GRANTS. Veremos como
conceder e revogar privilégios em tabelas, funções e procedimentos no MySQL.

GRANT privileges ON object TO user;


GRANT SELECT, INSERT, UPDATE, DELETE ON pessoas TO ’root’@’localhost’;
GRANT SELECT ON familia TO ’root’@’localhost’;
GRANT ALL ON familia TO ’root’@’localhost’;
Privilégios GRANT
Privilégios Descrição
SELECT Permissão de executar instruções SELECT na tabela.
INSERT Permissão de executar instruções INSERT na tabela.
UPDATE Permissão de executar instruções UPDATE na tabela.
DELETE Permissão de executar instruções DELETE na tabela.
INDEX Permissão de criar um índice em uma tabela existente.
CREATE Permissão de executar instruções CREATE TABLE.
ALTER Permissão de executar instruções ALTER TABLE para alterar a definição da tabela.
DROP Permissão de executar instruções DROP TABLE.
GRANT OPTION Permite que você conceda os privilégios que possui a outros usuários.
ALL Concede todas as permissões, exceto GRANT OPTION.
Privilégios REVOKE
 Você pode REVOKE (revogar, retirar) privilégios em vários objetos de banco de dados no MySQL. Você
pode então visualizar os privilégios atribuídos a um usuário usando o comando SHOW GRANTS. Veremos
como conceder e revogar privilégios em tabelas, funções e procedimentos no MySQL.

REVOKE privileges ON object TO user;


REVOKE SELECT, INSERT, UPDATE, DELETE ON pessoas TO ’root’@’localhost’;
REVOKE SELECT ON familia TO ’root’@’localhost’;
REVOKE ALL ON familia TO ’root’@’localhost’;
Privilégios REVOKE
Privilégios Descrição
SELECT Impede de executar instruções SELECT na tabela.
INSERT Impede de executar instruções INSERT na tabela.
UPDATE Impede de executar instruções UPDATE na tabela.
DELETE Impede de executar instruções DELETE na tabela.
INDEX Impede de criar um índice em uma tabela existente.
CREATE Impede de executar instruções CREATE TABLE.
ALTER Impede de executar instruções ALTER TABLE para alterar a definição da tabela.
DROP Impede de executar instruções DROP TABLE.
GRANT OPTION Impede que você conceda os privilégios que possui a outros usuários.
ALL Impede todas as permissões, exceto GRANT OPTION.
Data Transaction Language (DTL)
• É o tipo de linguagem que
controla as transações que são
executadas em um banco de
dados. Transação é uma unidade
de execução de programa que
acessa e atualiza os dados.

Você também pode gostar