O MySQL, um sistema de gestão de bases de dados relacional amplamente adotado, é a espinha dorsal de inúmeras aplicações. A capacidade de manipular tabelas de forma eficiente é crucial para a administração de qualquer base de dados. Este guia explora as operações essenciais em tabelas MySQL, desde a sua criação e modificação até a recuperação e eliminação de dados.
Criação de Tabelas
A definição de novas tabelas é um passo fundamental na construção de uma base de dados. A instrução SQL CREATE TABLE permite especificar a estrutura de uma tabela, incluindo seu nome, as colunas que a compõem e os tipos de dados asscoiados a cada coluna.
CREATE TABLE colaboradores (
id_colaborador INT AUTO_INCREMENT PRIMARY KEY,
primeiro_nome VARCHAR(80) NOT NULL,
ultimo_nome VARCHAR(80) NOT NULL,
email_pessoal VARCHAR(120) UNIQUE,
data_entrada DATE,
cargo VARCHAR(60)
);
Alteração da Estrutura da Tabela
À medida que os requisitos de uma aplicação evoluem, a estrutura das tabelas pode necessitar de ajustes. O comando ALTER TABLE é a ferramenta padrão para realizar essas modificações.
Adicionar uma nova coluna
ALTER TABLE colaboradores ADD COLUMN salario_base DECIMAL(12, 2);
Modificar as características de uma coluna existente
ALTER TABLE colaboradores MODIFY COLUMN email_pessoal VARCHAR(180) NOT NULL;
Remover uma coluna
ALTER TABLE colaboradores DROP COLUMN cargo;
Consulta da Estrutura da Tabela
Para inspecionar a estrutura de uma tabela e verificar suas colunas, tipos e restrições, podem ser utilizadas as instruções DESCRIBE ou SHOW COLUMNS.
DESCRIBE colaboradores;
SHOW COLUMNS FROM colaboradores;
Inserção de Dados
Preencher uma tabela com dados é uma operação central em qualquer base de dados. A instrução INSERT INTO permite adicionar um ou múltiplos registos.
Inserção de um único registo
INSERT INTO colaboradores (primeiro_nome, ultimo_nome, email_pessoal, data_entrada, salario_base)
VALUES ('Ana', 'Silva', 'ana.silva@empresa.com', '2023-03-01', 5500.00);
Inserção de múltiplos registos
INSERT INTO colaboradores (primeiro_nome, ultimo_nome, email_pessoal, data_entrada, salario_base)
VALUES
('Bruno', 'Martins', 'bruno.martins@empresa.com', '2023-03-05', 6200.00),
('Carla', 'Santos', 'carla.santos@empresa.com', '2023-03-10', 4800.00);
Consulta de Dados
A recuperação de dados é uma das operações mais frequentes e versáteis. A instrução SELECT é empregada para realizar consultas, desde as mais básicas às mais complexas.
Consulta simples para todos os campos
SELECT * FROM colaboradores;
Consulta com condições
SELECT primeiro_nome, ultimo_nome FROM colaboradores WHERE data_entrada > '2023-03-02';
Consulta com ordenação
SELECT id_colaborador, primeiro_nome, salario_base FROM colaboradores ORDER BY salario_base DESC;
Consulta com agrupamento
SELECT YEAR(data_entrada) AS ano_entrada, COUNT(*) AS total_colaboradores
FROM colaboradores
GROUP BY ano_entrada
HAVING COUNT(*) > 1;
Atualização de Dados
A instrução UPDATE é utilizada para modificar dados existentes em um ou mais registos de uma tabela.
UPDATE colaboradores SET email_pessoal = 'nova.ana@empresa.com' WHERE id_colaborador = 1;
Exclusão de Dados
Para remover registos de uma tabela, utiliza-se a enstrução DELETE FROM. É crucial ter cautela com esta operação para evitar a perda inadvertida de dados.
DELETE FROM colaboradores WHERE id_colaborador = 2;
Exclusão de Tabelas
A instrução DROP TABLE permite eliminar uma tabela por completo, removendo tanto a sua estrutura quanto todos os dados contidos nela.
DROP TABLE colaboradores;
Criação de Views
Uma view é uma tabela virtual baseada no resultado de uma instrução SELECT. Ela simplifica consultas complexas e pode ser usada para restringir o acesso a subconjuntos de dados.
CREATE VIEW colaboradores_salario_view AS
SELECT id_colaborador, primeiro_nome, ultimo_nome, salario_base
FROM colaboradores
WHERE salario_base > 5000;
Controle de Transações
As transações são cruciais para garantir a integridade e consistência dos dados, permitindo agrupar múltiplas operações em uma única unidade lógica. São controladas pelas instruções START TRANSACTION (ou BEGIN), COMMIT e ROLLBACK.
Iniciar uma transação
START TRANSACTION;
Confirmar as alterações (torná-las permanentes)
COMMIT;
Desfazer as alterações (revertre ao estado inicial da transação)
ROLLBACK;
Operações de Índice
Índices melhoram significativamente o desempenho das consultas, permitindo que o sistema de base de dados localize linhas mais rapidamente. São criados com a instrução CREATE INDEX.
CREATE INDEX idx_email_pessoal ON colaboradores (email_pessoal);
Restrição de Chave Estrangeira
Chaves estrangeiras (Foreign Keys) são usadas para impor a integridade referencial entre tabelas, garantindo que os dados em colunas relacionadas sejam consistentes. Podem ser definidas durante a criação ou modificação de tabelas.
CREATE TABLE pedidos (
id_pedido INT AUTO_INCREMENT PRIMARY KEY,
data_pedido DATE NOT NULL,
id_cliente INT,
FOREIGN KEY (id_cliente) REFERENCES colaboradores(id_colaborador)
);
Backup e Restauração de Tabelas
Para a segurança dos dados, a realização de backups regulares é uma prática indispensável. A ferramenta mysqldump é amplamente utilizada para efetuar cópias de segurança e restaurar bases de dados MySQL.
Para realizar um backup de uma tabela específica
mysqldump -u usuario_db -p nome_base_dados colaboradores > backup_colaboradores.sql
Para restaurar uma tabela a partir de um ficheiro de backup
mysql -u usuario_db -p nome_base_dados < backup_colaboradores.sql