Gestão de Tabelas em Bancos de Dados MySQL

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

Tags: MySQL SQL Database Management DDL DML

Publicado em 7-2 20:20