You are on page 1of 24

Criando o nosso banco de dados

Durante todo o curso usaremos o terminal do MySQL. Apesar dele não ser a melhor interface
gráfica, ele é igual para todas as plataformas, e não muda de versão para versão. Se você já
conhecer alguma, não há problema de fazer uso dela.

Abra o terminal do seu sistema operacional. No Windows, digite cmd no Executar. No Mac e
Linux, abra o terminal. Nele, vamos entrar no MySQL:
mysql -uroot -p
Esse é o comando para nos conectarmos no MySQL que está instalado na máquina. O -
uindica o usuário root, e o -p é porque digitaremos a senha. Como não há senha, pressione
enter.
Vamos agora criar um banco de dados; afinal o MySQL pode tomar conta de vários bancos
diferentes. O create database cria, e o use diz ao MySQL que é o banco que queremos
usar.
create database controle_compras;
use controle_compras;

Agora, vamos criar nossa primeira tabela. Tabela é como se fosse uma planilha do Excel,
onde temos colunas, cada uma representando uma informação diferente, por exemplo, nome
do produto, preço, etc, e linhas, onde cada linha é um dado em particular, por exemplo,
geladeira, 50 reais.

A instrução para se criar uma tabela para nosso sistema de compras é:

create table COMPRAS (id int auto_increment primary key, valor double, data date,
observacoes varchar(255), recebido boolean);
Repare que na instrução acima, passamos o nome da tabela (COMPRAS), e depois a lista de
colunas (id, valor, data, descrição e recebido). Passamos também o tipo de cada uma, ou
seja valor é double, data é date, e assim por diante.
O id é um campo em particular, estamos usando ele como um identificador único para aquela
linha. Pense no mundo real, o seu RG é uma chave importante, pois ele consegue identificar
um brasileiro dentre todos os outros, ele é um número e é sequencial, alguém tinha o RG 1 e
agora alguém tem o RG 223334446, essa chave é tão importante que chamamos de chave
primária. A chave primária não precisa necessariamente ser sequencial, mas deve ser única:
não devem existir duas pessoas com o mesmo RG, assim como não devem existir dois cursos
com o mesmo código, dois produtos diferentes com o mesmo código de barra, etc. Por isso
que dizemos que o campo id é primary key, ou seja, chave primária. Além disso, dizemos
que ele é sequencial, serial, cresce de um em um, isto é, um número inteiro que
é incrementado automaticamente a cada novo produto: int auto_increment.

Consultando dados
Queremos inserir na tabela COMPRAS, então começamos a instrução:
INSERT INTO COMPRAS
Em seguida, passamos os valores que queremos inserir. Por exemplo, suponha uma compra de
100,00 no dia 12/05/2007, que foi recebida, e que tem a observação 'COMPRAS DE MAIO':

INSERT INTO COMPRAS VALUES (100.0, '2007-05-12', 'COMPRAS DE MAIO', 1)


Separamos com vírgula cada um dos diferentes valores. Repare o uso de aspas simples (')
quando o valor passado é uma data ou string. Veja também o valor 1 no lugar do
campo recebido para indicar verdadeiro (colocaríamos 0 se quiséssemos passar falso).
Mas o MySQL não sabe que queremos colocar o valor 100.0 no campo valor ou 'COMPRAS
DE MAIO' no campo observacoes; precisamos passar essa informação pra ele, ou seja,
passar o nome de cada coluna que tem um valor a ser inserido:
INSERT INTO COMPRAS (VALOR, DATA, OBSERVACOES, RECEBIDO) VALUES (100.0, '2007-05-
12', 'COMPRAS DE MAIO', 1)
Observe o comando inicial. INSERT INTO recebe o nome da tabela (no nosso caso
COMPRAS). Em seguida, passamos a lista de colunas que vamos colocar valores:(VALOR,
DATA, OBSERVACOES, RECEBIDO). Por fim, passamos os valores que gostaríamos de inserir,
usando o comando VALUES: VALUES (100.0, '2007-05-12', 'COMPRAS DE MAIO', 1).
Todas instruções de INSERT são similares a essa: passamos o nome da tabela, o nome das
colunas, e os valores a serem inseridos, separados por vírgula.

Pronto. Com essa compra já inserida nesse banco de dados, vamos começar a consultá-las. Se
quiséssemos, por exemplo, ver todas as compras já cadastradas na minha lista, faríamos:

SELECT * FROM COMPRAS


Entendendo o comando que acabamos de digitar: SELECT quer dizer que queremos executar a
operação de seleção; * indica que queremos selecionar todas as colunas daquela tabela; FROM
COMPRAS quer dizer que a tabela que queremos executar esse comando é a tabela "compras".
Antes de começarmos a discutir sobre seleções usando SQL, vamos primeiro importar alguns
dados para a tabela que criamos na seção anterior. Faça o download do arquivo .sql Aqui.
Abra o arquivo, e veja que ele contém apenas um monte de INSERTs. Importe todos eles,
saindo do MySQL, e digitando a instrução abaixo. Ela basicamente pegará todas as instruções
que está no arquivo cap2.sql e mandará para o MySQL.
mysql -uroot -p controle_compras < cap2.sql
Volte para o MySQL. Se quiséssemos selecionar apenas valor e data dessa tabela, faríamos:
SELECT VALOR, DATA FROM COMPRAS

Podemos inclusive criar novas colunas a partir das já existentes. Por exemplo, caso
quiséssemos exibir, além de valor e data, o triplo de cada valor, poderíamos fazer:

SELECT VALOR, VALOR * 3, DATA FROM COMPRAS


Podemos até dar um nome para essa nova coluna, por exemplo, "triplo", usando a
instrução AS:
SELECT VALOR, VALOR * 3 AS TRIPLO, DATA FROM COMPRAS

Mas recuperar todas as informações de uma tabela de uma só vez não é comum. Geralmente
aplicamos filtros sobre esses resultados. Vamos supor que precisássemos saber todas as
compras com valor superior a 1.000,00 reais. Poderíamos deixar esse filtro claro na instrução
SQL:

SELECT * FROM COMPRAS WHERE VALOR > 1000


Repare o comando WHERE: ele é quem informa a SQL que filtraremos os resultados. Já a
condição VALOR > 1000 deixa bem claro qual o filtro que queremos fazer.

Podemos montar filtros ainda mais complexos. Por exemplo, caso precisássemos de todas as
compras com valor superior a 1.000,00 reais e inferior a 3.000,00, poderíamos fazer:

SELECT * FROM COMPRAS WHERE VALOR > 1000 AND VALOR < 3000

Ainda mais complexa: filtrar todas as compras cujo valor é superior a 1.000,00 reais e inferior
a 3.000,00 ou a data seja inferior a 12/02/2010:

SELECT * FROM COMPRAS WHERE (VALOR > 1000 AND VALOR < 3000) OR (DATA < '2010-02-12')
Repare no uso dos parênteses; eles indicam que a linha deve ser selecionado caso VALOR >
1000 AND VALOR < 3000 ou DATA < '2010-02-12'. Você pode montar a expressão que
quiser, usando ANDs, ORs. Além de maior e menor, a SQL suporta outros tipos de consultas,
como por exemplo:

Maior-ou-igual:

SELECT * FROM COMPRAS WHERE VALOR >= 1000

Menor-ou-igual:

SELECT * FROM COMPRAS WHERE VALOR <= 1000

Diferente:

SELECT * FROM COMPRAS WHERE VALOR <> 1000

Podemos filtrar também por textos. Se quiséssemos, por exemplo, buscar todas as compras
cuja observação seja igual a "COMPRAS DE JANEIRO", podemos fazer:

SELECT * FROM COMPRAS WHERE OBSERVACOES = 'COMPRAS DE JANEIRO'

Repare o uso das aspas simples ('). Ela indica que o conteúdo que será passado é do tipo texto.
O "igual" irá buscar por linhas que possuem essa observação. Mas as vezes queremos buscar
por apenas uma parte do texto. Por exemplo, caso quiséssemos todas as compras cuja
observação começasse com o texto "COMPRAS", independentemente do que viesse a seguir,
deveríamos fazer:

SELECT * FROM COMPRAS WHERE OBSERVACOES LIKE 'COMPRAS%'


O caractere % funciona como um coringa, ou seja, não importa o que houver dali pra frente.
Ele pode ser usado em qualquer lugar da consulta. Por exemplo, caso quiséssemos todas as
compras cuja observação contenha a palavra "COMPRA" em qualquer lugar, faríamos:
SELECT * FROM COMPRAS WHERE OBSERVACOES LIKE '%COMPRAS%'
A instrução SELECT é poderosíssima. Boa sorte nos exercícios!
Instalando o banco de dados MySQL no Windows
Este exercício se destina a instalação do MySQL no Windows. O próximo exercício contém
informações sobre a instalação no Ubuntu Linux e Mac OS.
A página de downloads do MySQL é: http://mysql.com/downloads/mysql
(Se estiver no windows, utilizar este link: https://dev.mysql.com/downloads/windows/ e
escolher a opção "MySQL Installer e seguir os passos abaixo)

Na página de downloads do MySQL, realize o download do MySQL Installer:

Na próxima página você terá duas opções: o arquivo de menor tamanho irá realizar o
download do que for necessário apenas no momento da instalação; o de maior tamanho irá
conter tudo que é necessário para instalar. Aqui vamos baixar o arquivo maior.
Mais uma página será exibida, você deve clicar em "No thanks, just start my download.", e o
download do arquivo irá iniciar.

Execute o arquivo baixado. Na primeira tela, marque o checkbox para aceitar a licença e
clique em "Next".
Na próxima tela, você pode marcar a opção "Server only". Isso é suficiente para realizar as
atividades do curso.
Agora você deve clicar em "Execute" para iniciar a instalação. Após o processo ser concluído
clique em "Next".
Nas próximas duas tela também clique em "Next".
Agora será necessário definir uma senha para o usuário root. Após digitar a mesma senha
nos dois campos clique em "Next".
A próxima tela diz respeito ao serviço do mysql. Aqui você pode manter as opções padrões e
apenas clicar em "Next".
Agora clique em "Execute" para que as configurações sejam aplicadas.
Clique em "Finish" para finalizar a intalação.
Adicionando o MySQL a variável de ambiente Path
O MySQL foi instalado, mas se tentarmos executar o comando mysql no Prompt de Comando
do Windows, receberemos uma mensagem informando que o comando não é reconhecido.
Para que seja possível executar o comando mysql no Prompt de Comando a partir de qualquer
diretório, precisamos configurar as variáveis de ambiente do Windows.

No Windows 10, Acesse o seguinte menu. Em versões anteriores do Windows, você pode
clicar com o botão direito em "Computador", no menu iniciar, e escolher a opção
"propriedades". Você também pode utilizar o atalho "Tecla do Windows (tecla Super) + Pause
Break".
Na tela que será exibida, clique em "Configurações avançadas do sistema".
Na janela propriedades so sistema, na aba "Avançado", clique em variáveis de ambiente.

Em "Variáveis do sistema", selecione a variável "Path" e clique em editar. Não crie uma nova
variável.

Os diretórios que estão definidos na variável Path são diretório em que os comandos que
digitamos no terminal são procurados. Por esse motivo vamos inserir o caminho do diretório
do MySQL nessa variável.
Na janela que irá aparecer, clique no botão "Editar" e adicione o caminho para o
diretório bindo MySQL. Por padrão o MySQL fica no diretório C:\Arquivos de
Programas\MySQL\MySQL Server 5.7. Você deve checar onde o seu MySQL foi instalado
e alterar o caminho de acordo com sua instalação. Lembre-se que desejamos adicionar o
diretório bin, onde ficam os executáveis do MySQL.
Em versões anteriores do Windows, ao editar a variável Path, será mostrada apenas uma
janela onde vários caminhos estão definidos, separados por ponto e vírgula. Você deve
adicionar um ponto e vírgula no final e adionar o diretório do MySQL.
Finalize clicando no botão "OK" em todas as janelas.

Abra o prompt de comando e tente executar o seguinte comando para acessar o mysql. Digite
o comando e pressione "Enter":

mysql -u root -p

Digite a senha escolhida e pressione "Enter".


Isso é tudo! O MySQL está instalado e configurado.
Criando a tabela
Logue no MySql, e comece criando o banco de dados:

mysql -uroot -p
create database controle_compras;
use controle_compras;

Agora vamos criar a tabela. Ela precisa ter os seguintes campos: id inteiro numeração
incremental automática e chave primária, valor número com vírgula, data, descricao com
tamanho de 255 caracteres, observacoes com tamanho de 255 caracteres e um booleano para
marcar se a compra foi recebido. A tabela deve se chamar "COMPRAS".

Escreva a SQL que cria a tabela.

Resposta
create table COMPRAS (id int auto_increment primary key, valor
double,data date, descricao varchar(255), observacoes varchar(255),
recebido boolean);
Populando o banco

Aluno: Se tiver conectado com MySQL, digite exit para sair do prompt do MySQL e
voltar para o prompt padrão.
Clique aqui e faça o download do arquivo .sql, e importe no MySQL:

mysql -u root -p controle_compras < cap2.sql

Refaça o login no MySQL:

mysql -u root -p

Em seguida, execute o select para garantir que todas as informaçoes foram adicionadas:

select * from COMPRAS;

DICA: Salve o arquivo cap2.sql em uma pasta que você possa acessar facilmente
através linha de comando. O arquivo deve estar no mesmo lugar onde você executará o
comando:

mysql -u root -p controle_compras < cap2.sql


Selecionando apenas alguns atributos

Selecione VALOR e OBSERVAÇÕES de todas as compras cuja data seja maior-ou-igual que
15/12/2008. Cole a instrução SQL aqui quando acabar

Resposta
SELECT VALOR, OBSERVACOES FROM COMPRAS WHERE DATA >= '2008-12-15';

Operador lógico AND com datas


Selecione todas as compras cuja data seja maior-ou-igual que 15/12/2008 e menor do que
15/12/2010. Cole a instrução SQL aqui quando acabar.

Resposta
SELECT * FROM COMPRAS WHERE DATA >= '2008-12-15' AND DATA < '2010-12-15';

Operador lógico AND com data e texto


Selecione todas as compras cujo valor esteja entre R$15,00 e R$35,00 e a observação
comece com a palavra 'LANCHONETE'. Cole a instrução SQL aqui quando acabar.

Resposta
SELECT * FROM COMPRAS WHERE VALOR >= 15.0 AND VALOR <= 35.0 AND
OBSERVACOES LIKE 'LANCHONETE%';
Filtrando campos booleanos
Selecione todas as compras que já foram recebidas. Cole a instrução SQL aqui quando
acabar.

Resposta
SELECT * FROM COMPRAS WHERE RECEBIDO = 1;

Filtrando campos booleanos novamente


Selecione todas as compras que ainda não foram recebidas. Cole a instrução SQL aqui
quando acabar.

Resposta
SELECT * FROM COMPRAS WHERE RECEBIDO = 0;

Operador OR
Selecione todas as compras com valor maior que 5.000,00 ou que já foram recebidas. Cole a
instrução SQL aqui quando acabar.

Resposta
SELECT * FROM COMPRAS WHERE RECEBIDO = 1 OR VALOR > 5000;. Lembre que caso
queira trabalhar com o valor nas casas decimais, o separador utilizado deverá ser o ponto,
como em:
SELECT * FROM COMPRAS WHERE RECEBIDO = 1 OR VALOR > 5000.47;

E serão consideradas as compras com valor acima de R$ 5000,47.


Operadores AND e OR juntos
Selecione todas as compras que o valor esteja entre 1.000,00 e 3.000,00 ou maior que
5.000,00. Cole a instrução SQL aqui quando acabar.
SELECT * FROM COMPRAS WHERE (VALOR >= 1000 AND VALOR <= 3000) OR
(VALOR > 5000);

You might also like