Numa base de dados real, os dados raramente são inseridos manualmente um a um. Muitas vezes precisamos de:
Carregar centenas ou milhares de registos de uma vez a partir de um ficheiro Excel ou CSV
Mover uma base de dados de um servidor para outro
Partilhar dados com outro sistema ou equipa
Guardar uma cópia de segurança de tudo o que existe na base de dados
É para isso que servem a importação e a exportação 🚀
CSV significa Comma-Separated Values — um formato simples de texto onde cada linha representa um registo e as colunas são separadas por vírgulas (ou ponto e vírgula).
Exemplo de um ficheiro CSV:
O CSV é um dos formatos mais universais para troca de dados — o Excel consegue abrir e guardar CSVs, e o MySQL consegue importar e exportar neste formato.
Vais criar uma tabela de dados no Excel e guardá-la em formato CSV para depois importar para o MySQL.
Passos:
Abre o Microsoft Excel e cria uma nova folha
Na primeira linha escreve os seguintes cabeçalhos (um por célula):
id | nome | email | cidade | data_nasc
Preenche pelo menos 8 linhas com dados inventados mas realistas. Atenção ao formato das datas — usa sempre AAAA-MM-DD (ex: 2005-03-15) para compatibilidade com o MySQL
Guarda o ficheiro como CSV:
Ficheiro → Guardar Como
Tipo: CSV UTF-8 (delimitado por vírgulas)
Nome do ficheiro: clientes.csv
Abre o ficheiro clientes.csv num editor de texto (Notepad ou VS Code) e confirma que:
Os dados estão separados por vírgulas
Os acentos aparecem corretamente
A primeira linha tem os cabeçalhos
✅ O ficheiro CSV está pronto quando consegues ver os dados em texto simples com as colunas separadas por vírgulas.
Antes de importares um CSV, a tabela de destino tem de existir e as suas colunas têm de corresponder às colunas do ficheiro.
Passos no phpMyAdmin:
Seleciona a tabela de destino no painel esquerdo
Clica no separador Importar
Clica em Escolher ficheiro e seleciona o teu CSV
Em Formato escolhe CSV
Define o separador de colunas — vírgula , ou ponto e vírgula ; (depende do ficheiro)
Se a primeira linha do ficheiro tiver os nomes das colunas, ativa a opção A primeira linha do ficheiro contém os nomes das colunas da tabela
Clica em Executar
Dica: Antes de importares, abre sempre o ficheiro CSV num editor de texto simples (Notepad, VS Code) para confirmar o separador e a codificação. O Excel pode enganar.
Erros mais comuns na importação de CSV:
Vais criar a estrutura da tabela no MySQL e importar os dados do ficheiro CSV criado no exercício anterior.
Passo 1 — Criar a base de dados e a tabela:
No phpMyAdmin, cria uma base de dados chamada aula2.
Dentro dessa base de dados, cria a tabela clientes com a seguinte estrutura:
Nota: O id não deve ter AUTO_INCREMENT porque o valor virá do CSV.
Passo 2 — Importar o CSV:
Seleciona a tabela clientes no painel esquerdo
Clica no separador Importar
Clica em Escolher ficheiro e seleciona o clientes.csv
Em Formato escolhe CSV
Define o separador de colunas como , (vírgula)
Ativa a opção A primeira linha do ficheiro contém os nomes das colunas da tabela
Clica em Executar
Passo 3 — Verificar:
Vai ao separador Pesquisa e analisa se a tabela foi criada corretamente.
✅ A tabela deve ter o mesmo número de registos que inseriste no Excel, com os acentos a aparecer corretamente
Um backup é uma cópia dos dados guardada num local separado, que permite recuperar a informação em caso de:
Falha de hardware (disco danificado, incêndio no servidor)
Erro humano (DELETE sem WHERE, DROP TABLE por engano)
Ataque informático (ransomware, acesso não autorizado)
Falha de software (bug que corrompe dados)
Uma boa política de backups segue a regra 3-2-1:
3 cópias dos dados
em 2 suportes diferentes (ex: disco externo + cloud)
com 1 cópia guardada fora do local (offsite)
Completo — cópia de tudo (estrutura + dados). É o mais seguro e simples de restaurar, mas ocupa mais espaço e demora mais tempo.
Incremental — só copia o que mudou desde o último backup. Mais rápido e ocupa menos espaço, mas é mais complexo de restaurar.
Diferencial — copia o que mudou desde o último backup completo. Equilíbrio entre os dois anteriores.
Para bases de dados pequenas e médias, o backup completo é geralmente a escolha mais prática.
Útil quando precisas de partilhar dados com alguém que usa Excel ou outro sistema que não fala SQL.
Passos no phpMyAdmin:
Seleciona a tabela que queres exportar no painel esquerdo
Clica no separador Exportar
Em Formato escolhe CSV
Define o separador de colunas (recomendado: ponto e vírgula ; para compatibilidade com o Excel em português)
Clica em Executar — o browser descarrega o ficheiro
Vais exportar a tabela clientes para CSV — o processo inverso do exercício anterior.
Passos:
Seleciona a tabela clientes no painel esquerdo
Clica no separador Exportar
Em Formato escolhe CSV
Define o separador como ; (ponto e vírgula — mais compatível com o Excel em português)
Clica em Executar e guarda o ficheiro como clientes_export.csv
Verificação:
Abre o ficheiro clientes_export.csv no Excel e confirma que os dados aparecem organizados em colunas
Abre o mesmo ficheiro no Notepad e confirma que o separador é o ponto e vírgula
✅ Os dados devem ser os mesmos que inseriste, sem erros de acentuação.
Pergunta para refletir: Qual a diferença entre exportar como CSV e exportar como SQL? Em que situação usarias cada um?
O formato SQL é o mais completo para backups — exporta tanto a estrutura das tabelas como todos os dados, em forma de comandos SQL prontos a executar.
Passos no phpMyAdmin:
Seleciona a base de dados no painel esquerdo
Clica no separador Exportar
Em Formato escolhe SQL
Clica em Executar
O ficheiro .sql gerado contém tudo o que é necessário para recriar a base de dados do zero noutro servidor.
Vais fazer um backup completo da base de dados aula2 em formato SQL — o formato ideal para backups e migrações entre servidores MySQL.
Passos:
Seleciona a base de dados aula2 no painel esquerdo (não a tabela — a base de dados)
Clica no separador Exportar
Confirma que todas as tabelas estão selecionadas
Na secção Dados, confirma que está selecionado INSERT
Formato: SQL
Clica em Executar e guarda o ficheiro com o nome aula2_backup_2024-04-10.sql (usa a data de hoje)
Verificação ✅
Abre o ficheiro .sql num editor de texto e confirma que contém:
Os comandos CREATE TABLE para cada tabela
Os comandos INSERT INTO com os dados
O ficheiro deve ser legível e conter tudo o que é necessário para recriar a base de dados do zero.
Onde guardar o ficheiro de backup:
Nunca no mesmo servidor onde está a base de dados — se o servidor falhar, perdes o backup também. Guarda numa pasta local, num disco externo ou num serviço de cloud (Google Drive, OneDrive).
Até agora os backups que vimos são manuais. Vês algum problema com isso?
Fazer backup manualmente depende de alguém se lembrar. Em produção, os backups são sempre automatizados.
O mysqldump é uma ferramenta do MySQL que permite fazer backups diretamente pela linha de comandos — essencial para automatizar o processo.
Abrir o terminal no XAMPP (Windows):
cd C:\xampp\mysql\bin
Comandos principais:
Backup de uma base de dados completa:
mysqldump -u root nome_da_bd > backup.sql
Backup de uma tabela específica:
mysqldump -u root nome_da_bd nome_da_tabela > backup_tabela.sql
Backup de todas as bases de dados:
mysqldump -u root --all-databases > backup_completo.sql
Nota: Para executares estes comandos necessitas de acesso de administrador
Fazer backup manualmente depende de alguém se lembrar. Em produção, os backups são sempre automatizados.
No Windows, pode-se criar um script simples (ficheiro do tipo .bat) e agendá-lo com o Agendador de Tarefas do Windows para correr automaticamente todos os dias.
Exemplo de script de backup automático:
bat@echo off
set DATA=%date:~6,4%-%date:~3,2%-%date:~0,2%
cd C:\xampp\mysql\bin
mysqldump -u root nome_da_bd > C:\backups\nome_da_bd_%DATA%.sql
echo Backup concluído: %DATA%
Este script cria um ficheiro de backup com a data no nome cada vez que é executado — assim nunca sobrescreve o backup anterior.
Nota: Em servidores Linux usa-se a ferramenta cron para agendar tarefas de forma equivalente.
O restore é o processo de recuperar uma base de dados a partir de um ficheiro de backup. Um backup que nunca foi testado não é um backup de confiança — é fundamental praticar o restore antes de precisar dele a sério.
Restore via phpMyAdmin:
Cria uma base de dados nova com o mesmo nome (se foi apagada) ou usa uma existente
Seleciona essa base de dados no painel esquerdo
Separador Importar
Escolhe o ficheiro .sql do backup
Clica em Executar
Vais simular uma situação de perda de dados e restaurar a base de dados a partir do backup criado nos exercícios anteriores.
Passo 1 — Simular a perda de dados:
No phpMyAdmin, apaga a base de dados aula2:
Seleciona a base de dados aula2 no painel esquerdo
Clica no separador Operações
Na secção Remover base de dados, clica em Remover base de dados (DROP)
Confirma a operação
✅ Verifica que a base de dados desapareceu do painel esquerdo.
Passo 2 — Restaurar a partir do backup:
Clica em Nova no painel esquerdo para criar uma base de dados nova com o nome aula2
Seleciona a base de dados aula2 no painel esquerdo
Clica no separador Importar
Clica em Escolher ficheiro e seleciona o ficheiro aula2_backup_2024-04-10.sql criado no exercício 4
Clica em Executar
Passo 3 — Verificar o restore:
Vai ao separador Pesquisa e analisa se a tabela foi criada corretamente.
✅O restore foi bem-sucedido quando todos os dados estão presentes e corretos — exatamente como estavam antes de apagar.
Nem sempre se perde tudo — por vezes é apenas uma tabela ou alguns registos. Nesse caso não é necessário restaurar a base de dados inteira.
Como restaurar apenas uma tabela:
Abre o ficheiro .sql do backup num editor de texto
Encontra o bloco correspondente à tabela que queres recuperar — começa com CREATE TABLE nome_tabela e continua com os INSERT INTO
Copia esse bloco
Cola no editor SQL do phpMyAdmin e executa
Situações comuns que exigem restore parcial:
Apagar uma tabela por engano:
DROP TABLE
Atualizar todas as colunas por engano:
UPDATE sem WHERE
(Continuação do Exercício anterior)
Passo 4 — Simular um erro de UPDATE e restaurar:
Simula um erro grave
UPDATE clientes SET email = 'erro@email.pt';
Verificar o estrago
SELECT * FROM clientes;
Sem fazer nada mais, restaura apenas a tabela clientes a partir do backup:
Abre o ficheiro aula2_backup_2024-04-10.sql no Notepad
Encontra o bloco com CREATE TABLE clientes e todos os INSERT INTO clientes
Copia esse bloco
No phpMyAdmin, executa primeiro DROP TABLE clientes;
Cola o bloco copiado no editor SQL e executa
Faz backup antes de qualquer alteração importante na estrutura da base de dados
Testa o restore regularmente — um backup que não foi testado pode não funcionar quando mais precisas
Guarda os backups fora do servidor onde está a base de dados
Usa nomes de ficheiro com data para não sobrescrever backups anteriores
Define uma política clara de retenção — quanto tempo guardas os backups antigos?
Nesta ficha irás proceder à criação de uma base de dados, efetuares um backup e depois recuperar num computador à parte.
English version: Evaluation_worksheet_backup_restore.pdf