You are on page 1of 14

Gerenciamento de banco de dados 1

Banco de Dados

Todos nós sabemos existirem gigantescas bases de dados gerenciando nossas vidas. De
fato sabemos que nossa conta bancária faz parte de uma coleção imensa de contas bancárias de
nosso banco. Nosso Título Eleitoral ou nosso Cadastro de Pessoa Física, certamente estão
armazenados em Bancos de Dados. Sabemos também que quando sacamos dinheiro no Caixa
Eletrônico de nosso banco, nosso saldo e as movimentações existentes em nossa conta bancária
já estão à nossa disposição.
Nestas situações sabemos que existe uma necessidade em se realizar o armazenamento
de uma série de informações que não se encontram efetivamente isoladas umas das outras, ou
seja, existe uma ampla gama de dados que se referem a relacionamentos existentes entre as
informações a serem manipuladas.
Estes Bancos de Dados, além de manterem todo este volume de dados organizado,
também devem permitir atualizações, inclusões e exclusões do volume de dados, sem nunca
perder a consistência. E não podemos esquecer que na maioria das vezes estaremos lidando com
acessos concorrentes a várias tabelas de nosso banco de dados, algumas vezes com mais de um
acesso ao mesmo registro de uma mesma tabela.
Um Banco de Dados contém os dados dispostos numa ordem pré-determinada em função
de um projeto de sistema, sempre para um propósito muito bem definido.
Um Banco de Dados representará sempre aspectos do Mundo Real. Assim sendo uma
Base de Dados (ou Banco de Dados, ou ainda BD) é uma fonte de onde poderemos extrair uma
vasta gama de informações derivadas, que possui um nível de interação com eventos como o
Mundo Real que representa. A forma mais comum de interação Usuário e Banco de Dados, dão-se
através de sistemas específicos que por sua vez acessam o volume de informações geralmente
através da linguagem SQL.
Os Administradores de Banco de Dados (DBA) são responsáveis pelo controle ao acesso
aos dados e pela coordenação da utilização do BD. Já os projetistas de Banco de Dados (DBP)
são analistas que identificam os dados a serem armazenados em um Banco de Dados e pela
forma como estes serão representados.
Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os
dados da forma necessária ao Usuário Final, que é aquele que interage diretamente com o Banco
de Dados.

Banco de Dados Relacional

O Modelo de Dados relacional representa os dados contidos em um Banco de Dados


através de relações. Estas relações contêm informações sobre as entidades representadas e seus
relacionamentos. O Modelo Relacional, é claramente baseado no conceito de matrizes, onde as
chamadas linhas (das matrizes) seriam os registros e as colunas (das matrizes) seriam os campos.
Os nomes das tabelas e dos campos são de fundamental importância para nossa compreensão
entre o que estamos armazenando, onde estamos armazenando e qual a relação existente entre
os dados armazenados.
As relações não podem ser duplicadas (não podem existir dois estados do Pará, no
conjunto de estados brasileiros, por exemplo), a ordem de entrada de dados no Banco de Dados
não deverá ter qualquer importância para as relações, no que concerne ao seu tratamento. Os
atributos deverão ser atômicos, isto é, não são níveis de novas divisões.
Gerenciamento de banco de dados 2

SQL - Structured Query Language

Introdução

Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas


linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM, desenvolveu a
SQL como forma de interface para o sistema de BD relacional denominado SYSTEM R, início dos
anos 70. Em 1986 o American National Standard Institute (ANSI), publicou um padrão SQL.
A SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional.
Em bancos de dados relacionais as informações são guardadas em tabelas. Para
recuperar uma informação necessária ao usuário, deve-se buscá-la em várias tabelas diferentes,
estabelecendo-se um relacionamento entre elas. Esta é a origem do nome deste paradigma de
banco de dados.
Tabelas são na verdade conjuntos. Por exemplo, quando em um sistema existe uma
tabela de vendas, esta tabela corresponde ao conjunto de todas as vendas feitas por uma
empresa. A tabela de vendedores corresponde ao conjunto de vendedores que trabalham em uma
empresa.
Para acesso a um banco de dados relacional, é necessária uma linguagem. A SQL é uma
linguagem usada pela maioria dos bancos de dados relacionais.
É uma linguagem baseada no inglês, fácil de escrever, ler e entender, tem como
características, a economia de tempo, flexibilidade e segurança na manutenção de bancos de
dados.
SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de
DDL (Data Definition Language), composta entre outros pelos comandos Create, que é destinado à
criação do Banco de Dados, das Tabelas que o compõe, além das relações existentes entre as
tabelas. Como exemplo de comandos da classe DDL temos os comandos Create, Alter e Drop
(criar, alterar, apagar tabelas).
Os comandos da série DML (Data Manipulation Language), destinados a consultas,
inserções, exclusões e alterações em um ou mais registros de uma ou mais tabelas de maneira
simultânea. Como exemplo de comandos da classe DML temos os comandos Select, Insert,
Update e Delete (selecionar, inserir, atualizar, apagar registros de uma tabela).

A Tabela CADASTRO abaixo será usada para descrever os comandos SQL que seguem
logo abaixo da tabela:

NOME ENDERECO TELEFONE CIDADE

FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE

SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE

ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE

WAGNER AV. PAULISTA, 200 211 1213 SAO PAULO


Gerenciamento de banco de dados 3

Comando Select

O comando Select, seleciona os dados especificados da tabela.


Sintaxe: Select <Campos> from <tabela>
Exemplo: Select nome from cadastro

NOME Resultado:

FABIANA
SUELI
ALESSANDRA
WAGNER

Caso deseja listar todos os campos de uma tabela, use o símbolo asterisco (*). Por
exemplo: Select * from Cadastro

Comando Distinct

O comando Distinct, elimina as linhas duplicadas da sua instrução SQL:


Select distinct (cidade) from Cadastro

CIDADE Resultado:
BELO HORIZONTE
SAO PAULO

Observe que, embora nós temos 3 pessoas de Belo Horizonte,


a instrução mostrou somente uma vez o nome da cidade.

Comando Top

O comando Top, mostra a quantidade de registros que você deseja iniciando do topo
Select top 3 cidade from cadastro
Resultado: Será mostrado os 3 primeiros registros

Comando Order By

O comando Order by, ordena a sua tabela:


Gerenciamento de banco de dados 4

Select * from Cadastro Order by nome;


Resultado:
NOME ENDERECO TELEFONE CIDADE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE

Nós podemos incluir uma condição em nosso select:


Select * from Cadastro where cidade = "BELO HORIZONTE" order by nome;

Resultado:
NOME ENDERECO TELEFONE CIDADE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
A query selecionou em ordem alfabética, somente os registros com
cidade = BELO HORIZONTE.
Você pode também fazer a query em ordem descendente:
Select * from Cadastro where cidade = "BELO HORIZONTE" order by nome desc
Resultado:
NOME ENDERECO TELEFONE CIDADE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE

Comando Sum

Veja a Tabela CLIENTE abaixo:

NOME VALOR

FABIANA 10

SUELI 20

ALESSANDRA 15

WAGNER 10

O comando Sum, soma uma coluna da sua tabela:


Gerenciamento de banco de dados 5

Select SUM(VALOR) from Cliente;


Resultado:
SUM(Valor)

90

A query informou a soma da coluna valor.

Comando Min

Veja a Tabela CLIENTE abaixo:

NOME VALOR

FABIANA 10

SUELI 20

ALESSANDRA 15

WAGNER 10

O comando Min, seleciona o menor valor de uma coluna:


Select MIN(VALOR) from Cliente;

Resultado:
MIN(valor)

10

A query informou o valor mínimo da coluna valor.

Comando Max

Veja a Tabela CLIENTE abaixo:

NOME VALOR

FABIANA 10

SUELI 20

ALESSANDRA 15

WAGNER 10

RIVA 25
Gerenciamento de banco de dados 6

REGINA 10

O comando Max, seleciona o maior valor de uma coluna:


Select MAX (VALOR) from Cliente

Max(valor)

25

A query informou o valor máximo da coluna valor.

Comando AVG

Veja a Tabela CLIENTE abaixo:

NOME VALOR

FABIANA 10

SUELI 20

ALESSANDRA 15

WAGNER 10

RIVA 25

REGINA 10

O comando Avg, seleciona a média de uma coluna:


Select AVG(VALOR) from Cliente;

AVG (valor)

15

A query informou a média da coluna valor.

Aliais

Veja a Tabela abaixo:


Tabela de CONTA_CORRENTE

CODIGO NOME SALDO


Gerenciamento de banco de dados 7

10 VANESSA 100,00

20 NILSON 100,00

30 RACHEL 150,00

40 CALVIN 200,00

50 RAINER 200,00

60 CHRISTIAN 150,00

Aliais (Apelidos) é criado quando usamos um calculo em uma query ou


selecionamos um valor mínimo ou Maximo de uma coluna, ou mesmo
concatenamos colunas.
Vamos calcular 1/4 do saldo da tabela acima:
Select nome,saldo/4 "CORRECAO" from conta_corrente;
E o resultado será:
NOME CORRECAO
VANESSA 25,00
NILSON 25,00
RACHEL 37,50
CALVIN 50,00
RAINER 50,00

O nome da coluna "CORRECAO" foi criado com um alias, caso nos não
tivéssemos colocado este alias, a coluna sairia com o nome "SALDO/4":
Select nome,saldo/4 from conta_corrente;
E o resultado será:
NOME SALDO/4
VANESSA 25,00
Comando Where NILSON 25,00
O comando Where é RACHEL 37,50
utilizado para estabelecer uma
condição na sua consulta. CALVIN 50,00
Suponhamos que seja preciso
selecionar todos os registros cuja RAINER 50,00
cidade cadastrada seja Belo
Horizonte, então ficaria assim:
Select * from Cadastro where cidade = "BELO HORIZONTE"
Gerenciamento de banco de dados 8

NOME ENDERECO TELEFONE CIDADE


FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
Resultado:

Além de usar o sinal de atribuição “=”, pode ser usado os sinais de >, <, >=, <=.

Comando Between

Tabela de CONTA_CORRENTE

CODIGO NOME SALDO

10 VANESSA 100,00

20 NILSON 100,00

30 RACHEL 150,00

40 CALVIN 200,00

50 RAINER 200,00

60 CHRISTIAN 120,00

O Operador between, seleciona dados que estão entre uma determinada condição.
Vejamos a seleção abaixo:
Select codigo, nome, saldo from conta_corrente where saldo between 50 and 150;
E o resultado será:
CODIGO NOME SALDO
10 VANESSA 100,00
20 NILSON 100,00
30 RACHEL 150,00
60 \CHRISTIAN 120,00
Gerenciamento de banco de dados 9

Na utilização do between o menor valor da comparação deve vir antes.

Comando Group by

Veja a Tabela CADASTRO abaixo:

NOME ENDERECO TELEFONE CIDADE

FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE

SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE

ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE

WAGNER AV. PAULISTA, 200 211 1213 SAO PAULO

RIVA RUA MARIANA, 428 550 1133 FORTALEZA

REGINA AV. CRISTOVAO COLOMBO, 4000 600 2299 PORTO ALEGRE

O comando Group by, agrupa os seus dados:

Select CIDADE, COUNT(*) from Cadastro GROUP by CIDADE;


Resultado:
CIDADE COUNT(*)
BELO HORIZONTE 3
FORTALEZA 1
PORTO ALEGRE 1
SAO PAULO 1

A query informou o número de pessoas por cidade e em ordem


alfabética, característica.

Comando In

Tabela de CADASTRO:

CODIGO NOME ESTADO CIDADE

10 VANESSA MG BELO HORIZONTE

20 NILSON MG OURO PRETO

30 RACHEL MG BELO HORIZONTE

40 CALVIN RS PORTO ALEGRE


Gerenciamento de banco de dados 10

50 RAINER SP SAO PAULO

60 CHRISTIAN SP SAO PAULO

IN pode ser um resultado de uma subquery ou o resultado de valores determinados:


Usando uma subquery:
Select codigo, nome, estado, cidade from cadastro where cidade in (select cidade from
cadastro where estado = 'MG');
E o resultado será:
CODIGO NOME ESTADO CIDADE
10 VANESSA MG BELO HORIZONTE
20 NILSON MG OURO PRETO
30 RACHEL MG BELO HORIZONTE
Definindo valores:
Select codigo, nome, estado, cidade from cadastro where estado in ('MG','RS');
E o resultado será:
CODIGO NOME ESTADO CIDADE
10 VANESSA MG BELO HORIZONTE
20 NILSON MG OURO PRETO
30 RACHEL MG BELO HORIZONTE
40 CALVIN RS PORTO ALEGRE

Comando Inner Join, Left Join e Right Join

Esses comandos servem para unir duas ou mais tabelas, por exemplo:
Tabela de CLIENTE Tabela de SALDO

COD_CLIENTE NOME TELEFONE

001 FABIANA 222 5534

002 SUELI 339 1100

003 ALESSANDRA 465 2211

004 WAGNER 211 1213


COD_CLIENTE VALOR

001 10
Gerenciamento de banco de dados 11
002 20

003 15

004 10

Baseado nas tabelas acima fazer uma seleção com o nome do cliente da tabela de
cliente e o valor do saldo da tabela de saldo para isso é necessário usar o comando Join:
Exemplo:
Select a.nome, b.valor from cliente a inner join saldo b on
a.cod_cliente=b.cod_cliente

Será mostrado apenas se o código do


cliente estiver tanto na tabela de
cliente como na tabela de saldo,
precisa conter nas duas tabelas.

Select a.nome, b.valor from cliente a Left join saldo b on


a.cod_cliente=b.cod_cliente

Será mostrado se o código do cliente


estiver na tabela à esquerda, no caso a
tabela de cliente, independentemente se
o código estiver na tabela de saldo.

Select a.nome, b.valor from cliente a Right join saldo b on


a.cod_cliente=b.cod_cliente

Será mostrado se o código do cliente


estiver na tabela à direita, no caso a
tabela de saldo, independentemente se
o código estiver na tabela de cliente

Comando Delete

O comando Delete, exclui os registros da sua tabela.


Sintaxe: Delete from <tabela>
Exemplo: Delete from Cadastro
Depois de digitar esse comando, se você fizer um select na tabela de cadastro, verá que a
sua tabela está vazia, isso porque não tinha nenhuma condição de exclusão.Caso você queira
excluir um registro específico, você deverá incluir uma condição:
Delete from cadastro where nome = "FABIANA";

Faça um select, e você perceberá que será excluído apenas o nome “FABIANA”, segue o
resultado:
NOME ENDERECO TELEFONE CIDADE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
WAGNER AV. PAULISTA, 200 211 1213 SAO PAULO
Gerenciamento de banco de dados 12

Comando Insert

O comando Insert, insere novos dados na tabela.


Sintaxe: Insert into <tabela>(<campos que serão inseridos>) values(<valor dos campos
que serão inseridos>)
Por exemplo: Insert into Cadastro(nome,endereço,telefone,cidade) values
("CARLOS","RUA ICARAI, 890","339 1212","BELO HORIZONTE")
Você verá o resultado, fazendo um select: Select * from Cadastro;

Resultado:
NOME ENDERECO TELEFONE CIDADE
SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
WAGNER AV. PAULISTA, 200 211 1213 SAO PAULO
CARLOS Rua ICARAI,890 339 1212 BELO HORIZONTE

Comando Update

O comando Update, altera os campos da sua tabela.


Sintaxe: Update <tabela> set <campo> = <valor>
Exemplo: Update Cadastro set nome = "JOSE"
Faça um select, e você obterá o seguinte resultado:
NOME ENDERECO TELEFONE CIDADE
JOSE RUA SERGIPE, 233 222 5534 BELO HORIZONTE
JOSE RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE
JOSE AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
JOSE AV. PAULISTA, 200 211 1213 SAO PAULO

Observe que se você não define o registro que deseja alterar, a query mudará todos os nomes
para JOSE. Para você alterar somente um registro, você deverá incluir uma condição:
Update Cadastro set nome = "JOSE" where nome = "RIVA";
Faça um select, e você obterá o seguinte resultado:
NOME ENDERECO TELEFONE CIDADE
FABIANA RUA SERGIPE, 233 222 5534 BELO HORIZONTE
Gerenciamento de banco de dados 13

SUELI RUA DA BAHIA, 1234 339 1100 BELO HORIZONTE


ALESSANDRA AV. AFONSO PENA, 600 465 2211 BELO HORIZONTE
WAGNER AV. PAULISTA, 200 211 1213 SAO PAULO
Gerenciamento de banco de dados 14