Você está na página 1de 30

MySQL

Trabalhando com o MySQL Workbench

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Sobre o MySQL Workbench
O MySQL Workbench é uma ferramenta visual
unificada para arquitetos de banco de dados,
desenvolvedores e administradores (DBAs). O MySQL
Workbench fornece modelagem de dados,
desenvolvimento SQL e ferramentas abrangentes de
administração para configuração de servidores,
administração de usuários, backup de banco de dados e
muito mais.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Acessando o MySQL Workbench
Para acessar o MySQL Workbench no Windows, basta ir no menu iniciar, grupo
MySQL e clicar em “MySQL Workbench 8.0 CE” e no Linux, no menu Programming
escolha “MySQL Workbench” ou no terminal digite “mysql-workbench” sem as
aspas.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
A interface do MySQL Workbench
Janela principal do MySQL Workbench com mensagem de boas vindas.
Você pode conectar-se à
instância local do MySQL
dando dois cliques na
conexão exibida conforme
imagem ao lado. Caso
seja solicitada a senha,
informe a senha criada Conexões

na instalação do MySQL.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
A interface do MySQL Workbench
Após se conectar à instância local, será exibida a janela a seguir.

Painel de
navegação
Adições

Janela de
consultas (query)

Painel de
informações
Painel de Saída

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando um schema
Vamos criar o nosso banco de dados, ou
“esquema” (schema) como é denominado o
banco de dados no MySQL.
Para isso vá até o painel de navegação, onde
está o Schema sys e clique com o botão direito
do mouse na área vazia conforme imagem ao
lado e escolha “Create Schema”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando um schema
Será exibida uma guia com dados para criação do esquema.
No campo “Name:” informe um nome para nosso esquema, vamos
chamá-lo de “agenda”.
Em seguida, clique em “Apply”. Na janela seguinte confirme clicando
em “Apply” novamente e depois em “Finish”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando um schema
Observe que será exibida o esquema “agenda” no painel de navegação.
Pode fechar a janela “agenda – Schema” neste momento.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Visualizando os objetos do schema
Clique na seta ao lado esquerdo do esquema “agenda” para expandir.

Veja que serão exibidas as seguintes opções:


Tabelas, visualizações, procedimentos armazenados e
funções.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando uma tabela
Clique com o botão direito do mouse sobre “Tabelas” e escolha a
opção “Criar Tabela”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando uma tabela
Será exibida uma guia chamada “new_table - Table” para definirmos a
nossa tabela.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando uma tabela
Em “Table Name:” informe “contatos” e na área para definição das colunas das tabelas
defina os seguintes campos:

Tipo de dados: INT = Número Inteiro, Varchar = Texto(tamanho).


PK = Primary Key (Chave primária).
NN = Not Null (Não nulo).
UQ = Unique (Único).
AI = Auto Increment (Auto incremento – gerado automaticamente)

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando uma tabela
Após definir os campos clique em “Apply” e na janela exibida, clique
em “Apply” novamente e depois em “Finish”. Pode fechar a aba
“contatos – Table”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Criando uma tabela
Você observou que na janela de confirmação foi exibido o comando SQL para
criação da tabela “contato” no schema “agenda”.

Como exemplo, crie uma tabela denominada “exemplo”


escrevendo o comando SQL da imagem a seguir na janela de
consultas e execute-o clicando em .

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Tipos de dados no MySQL
Antes de criar um campo de uma tabela você precisa conhecer os dados que serão
armazenados para que escolha o melhor tipo de dados para o mesmo.
Vamos ver agora alguns dos tipos de dados disponibilizados pelo MySQL.
Categoria Tipos de dados

Numeric (Numérico) Inteiros (Valor exato):


INTEGER ou INT, SMALLINT, TINYINT, MEDIUMINT e BIGINT

Ponto Fixo (Valor exato):


DECIMAL, NUMERIC

Ponto Flutuante (Valor aproximado):


FLOAT, DOUBLE
Date and Time (Data e Hora) DATE, DATETIME e TIMESTAMP

String (Texto) CHAR e VARCHAR

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Tipos de dados no MySQL
NUMÉRICO: INTEIROS (Valor exato)

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Tipos de dados no MySQL
NUMÉRICO: PONTO FIXO (Valor exato)

Os tipos DECIMAL e NUMERIC armazenam dados numéricos exatos. Esses tipos são usados quando é importante
preservar precisão exata, por exemplo com dados monetários.
No MySQL, NUMERIC é implementado como DECIMAL, então o exemplo a seguir sobre decimal, aplica-se a numeric.
Quando vamos criar uma coluna decimal ou numérica temos que definir a precisão e a escala como a seguir:
salario DECIMAL(6, 2)
Neste exemplo, 6 é a precisão e 2 a escala (casas decimais).
Podemos armazenar no campo salário a seguinte faixa de valores:
-9999.99 a 9999.99.

Se for informado zero na escala “DECIMAL(6,0)”, o valor decimal não vai conter o ponto decimal ou a parte
fracionária.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Tipos de dados no MySQL
NUMÉRICO: PONTO FLUTUANTE (Valor aproximado)

Os tipos FLOAT e DOUBLE representam valores aproximados de dados numéricos.


Semelhante aos números de ponto fixo, definimos um campo assim:
numero FLOAT(7,4)
O campo “numero” poderá receber valores entre -999.9999 e 999.9999.
Para estes tipos de dados o MySQL faz arredondamentos. Por exemplo, se
informarmos o valor 999.00009 no campo “numero” o valor aproximado será
999.0001.
Sendo assim, não podemos utilizar estes tipos de dados em se tratando de
números exatos.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Tipos de dados no MySQL
DATA E HORA: DATE, DATETIME e TIMESTAMP
O tipo DATE é usado para valores com uma parte de data, mas sem parte de hora. O MySQL recupera e exibe valores DATE no formato ‘AAAA-
MM-DD’. O intervalo suportado para este campo é entre ‘1000-01-01’ e ‘9999-12-31’.

O tipo DATETIME é usado para valores que contenham partes de data e hora. O MySQL recupera e exibe valores DATETIME no formato ‘AAAA-
MM-DD HH:MM:SS’. O intervalo suportado é entre ‘1000-01-01 00:00:00’ e ‘9999-12-31 23:59:59’.

O tipo de dados TIMESTAMP é usado para valores que contenham partes de data e hora. TIMESTAMP tem um intervalo entre ‘1970-01-01
00:00:01’UTC e ‘2038-01-19 03:14:07’UTC.
(O Tempo Universal Coordenado, abreviadamente UTC (do inglês Universal Time Coordinated), também conhecido como tempo civil, é o fuso
horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo.)

Um valor de DATETIME ou TIMESTAMP pode incluir uma parte fracionária de segundos à direita em até microssegundos (6 dígitos) de precisão.
Em particular, qualquer parte fracionária em um valor inserido em uma coluna DATETIME ou TIMESTAMP é armazenada em vez de descartada.
Com a parte fracionária incluída, o formato desses valores é 'AAAA-MM-DD HH:MM:SS[.fração]', o intervalo para valores de DATETIME é de
'1000-01-01 00:00:00.000000' a '9999-12-31 23:59:59.999999 ', e o intervalo para valores TIMESTAMP é de '1970-01-01 00:00:01.000000’ a
'2038-01-19 03:14:07.999999'. A parte fracionária deve sempre ser separada do resto do tempo por um ponto decimal; nenhum outro
delimitador de segundos fracionários é reconhecido.
Python para Todos – Evaldo Wolkers
MySQL - Introdução
Tipos de dados no MySQL
TEXTO: CHAR E VARCHAR
Os tipos CHAR e VARCHAR são semelhantes, mas diferem na maneira como os dados são armazenados e
recuperados. Ambos são declarados com um comprimento que indica o número máximo de caracteres que
deseja armazenar. Por exemplo CHAR(10) pode conter até 10 caracteres.

O tamanho armazenado para uma coluna CHAR será sempre o número de caracteres informado, pois esta
coluna terá os valores preenchidos com espaços à direita, porém, na busca desse campo, os espaços são
removidos. Ou seja, se você criar um campo CHAR de tamanho 10, mesmo que preencha o campo com o texto
“Ola”, o campo ocupará o espaço de 10 caracteres (10 bytes), preenchendo com espaços à direita. O
comprimento de um campo CHAR pode ser definido entre 0 e 255.

Colunas do tipo VARCHAR são de tamanho variável. O comprimento pode ser especificado como um valor
entre 0 e 65.535. Diferente do CHAR, os valores em campos VARCHAR são armazenados como um prefixo de 1
ou 2 bytes de comprimento mais os dados. O prefixo de comprimento indica o número de bytes no valor. Uma
coluna usa um byte de comprimento se os valores (conteúdo do campo) não exigirem mais do que 255 bytes,
dois bytes de comprimento se os valores exigirem mais de 255 bytes.
Python para Todos – Evaldo Wolkers
MySQL - Introdução
Inserindo dados em uma tabela
Para inserir dados em uma tabela usamos o comando “insert”.

Gerando um erro ao tentar inserir um telefone com um tamanho maior


do que o tamanho do campo (13 caracteres).

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Para visualizar os dados em uma tabela usamos o comando “select”. Você pode especificar a lista de
colunas a retornar ou retornar todas usando o “*”.
Exemplos:
select nome from agenda.contatos
select * from agenda.contatos

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Vamos agora inserir mais alguns registros na nossa tabela de contatos:
insert into agenda.contatos (nome, telefone, celular) values ('Mickey', '(11)1111-1111', '(11)11111-1111');
insert into agenda.contatos (nome, telefone, celular) values ('Pluto', '(11)2222-2222', '(11)22222-2222');
insert into agenda.contatos (nome, telefone) values ('Minie', '(11)3333-3333');
insert into agenda.contatos (nome, celular) values ('Tio Patinhas', '(11)44444-4444');
insert into agenda.contatos (nome, telefone, celular) values ('Margarida', '(11)5555-5555', '(11)55555-5555');
insert into agenda.contatos (nome, telefone, celular) values ('Cascão', '(11)6666-6666', '(11)66666-6666');
insert into agenda.contatos (nome, telefone, celular) values ('Cebolinha', '(11)7777-7777', '(11)77777-7777');
insert into agenda.contatos (nome, telefone, celular) values ('Mônica', '(11)8888-8888', '(11)88888-8888');
insert into agenda.contatos (nome, telefone, celular) values ('Magali', '(11)9999-9999', '(11)99999-9999');

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Podemos filtrar o resultados das nossas consultas usando a cláusula
“where” do comando “select”.
Exemplo:
select * from agenda.contatos where nome = 'Mônica’

Utilizando o “=“ o conteúdo do campo tem que


ser idêntico ao valor informado.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Usando “Where” com “Like” parar retornar os registros contendo parte do valor informado.
select * from agenda.contatos where nome like ‘M%’
O percentual é um caracter “coringa” que serve para substituir caracteres na busca. No exemplo
acima serão retornados todos contatos cujo nome inicie com “M” e não importa os caracteres
depois do “M”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Usando o “and” para retornar o resultado com base em duas informações.
select * from agenda.contatos where celular is not null and nome like 'M%’
Serão retornados todos os contatos cujo nome inicie com “M” e que tenham celular (não seja nulo).
A “Minie” não será exibida porque não tem celular (Veja slide anterior). O campo celular está com o
valor nulo “null”.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Consultando dados em uma tabela
Usando o “or” para retornar o resultado com base em uma ou outra informação.
select * from agenda.contatos where (celular is not null and nome like ‘M%’) or (nome like
‘%Donald’)
Serão retornados todos os contatos cujo nome inicie com “M” e que tenham celular (não seja nulo)
ou que tenham “Donald” no nome

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Alterando dados em uma tabela
Para alterar dados em um registro de uma tabela usamos o comando “update” em conjunto com
cláusulas “where” para determinar qual registro queremos atualizar.
Exemplo:
update agenda.contatos set celular = '(21)12345-1111' where id = 9

Este comando atualiza o celular do registro onde o campo “id” é igual a 9.


Veja na imagem que o celular da “Mônica” era (11)88888-8888 e agora é (21)12345-1111.

Muito cuidado na hora de fazer uma alteração


especificando bem qual registro será alterado
para não alterar registros errados.
Um update sem uma cláusula where irá
alterar todos registros da tabela.

Python para Todos – Evaldo Wolkers


MySQL - Introdução
Excluindo dados em uma tabela
Para excluir um registro de uma tabela usamos o comando “delete” em conjunto com cláusulas
“where” para determinar qual registro queremos excluir. CUIDADO ao usar o comando delete, seu
uso indevido pode trazer graves problemas.
Exemplo:
delete from agenda.contatos where telefone = "(11)5555-5555”
Este comando exclui o registro que possua o telefone informado na cláusula where. No nosso caso,
excluiu o registro 6 que é o registro da “Margarida”. Veja:

O registro 6 foi excluído

Python para Todos – Evaldo Wolkers


FIM

Python para Todos – Evaldo Wolkers

Você também pode gostar