Tipos de Dados Essenciais
Para estruturar corretamente um banco de dados MySQL, é fundamental compreender as categorias de tipos de dados disponíveis:
- Numéricos:
TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLEeDECIMAL(ideal para valores monetários). - Strings/Texto:
CHAR(tamanho fixo),VARCHAR(tamanho variável),TINYTEXT,TEXT,LONGTEXT, além de tipos binários comoBLOBeLONGBLOB. - Temporais:
DATE(AAAA-MM-DD),TIME(HH:MM:SS),DATETIME,TIMESTAMPeYEAR.
Criação de Tabelas
A criação de uma tabela define a estrutura onde os dados serão armazenados. Abaixo, um exemplo de criação de uma tabela para gerenciar usuários:
CREATE TABLE usuarios (
id_usuario INT PRIMARY KEY AUTO_INCREMENT,
nome_completo VARCHAR(100) NOT NULL,
registro_ativo BOOLEAN DEFAULT TRUE,
idade TINYINT,
setor_alocacao VARCHAR(50),
remuneracao DECIMAL(10, 2)
);
Inspeção de Metadados
Existem diversos comandos para verificar a estrutura e as tabelas existentes no banco de dados:
- Listar tabelas:
SHOW TABLES; - Verificar estrutura da tabela:
DESCRIBE usuarios;ouDESC usuarios; - Verificar script de criação:
SHOW CREATE TABLE usuarios;
DESC usuarios;
/* Retorno esperado:
+-----------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+----------------+
| id_usuario | int | NO | PRI | NULL | auto_increment |
| nome_completo | varchar(100) | NO | | NULL | |
| registro_ativo | tinyint(1) | YES | | 1 | |
| idade | tinyint | YES | | NULL | |
| setor_alocacao | varchar(50) | YES | | NULL | |
| remuneracao | decimal(10,2) | YES | | NULL | |
+-----------------+---------------+------+-----+---------+----------------+
*/
Modificando a Estrutura (DDL)
É possível alterar tabelas existentes sem a necessidade de removê-las e recriá-las:
Adicionar Colunas:
ALTER TABLE usuarios ADD COLUMN data_cadastro DATE NOT NULL;
ALTER TABLE usuarios ADD COLUMN cpf VARCHAR(14) AFTER nome_completo;
Modificar Atributos de uma Coluna:
ALTER TABLE usuarios MODIFY COLUMN idade INT DEFAULT 21;
Renomear Coluna:
ALTER TABLE usuarios CHANGE COLUMN setor_alocacao departamento VARCHAR(60);
Excluir Coluna:
ALTER TABLE usuarios DROP COLUMN registro_ativo;
Renomear a Tabela:
RENAME TABLE usuarios TO colaboradores;
Manipulação de Registros (DML)
Após definir a estrutura, utilizamos os comandos de menipulação para gerenciar o conteúdo.
Inserção de Dados:
-- Inserção simples
INSERT INTO colaboradores (nome_completo, idade, departamento, remuneracao)
VALUES ('Ricardo Souza', 29, 'TI', 5500.00);
-- Inserção múltipla
INSERT INTO colaboradores (nome_completo, idade, departamento)
VALUES ('Ana Costa', 24, 'RH'),
('Marcos Lima', 35, 'Financeiro');
Atualização de Dados:
O uso da cláusula WHERE é crítico para evitar a alteração de todos os registros da tabela.
UPDATE colaboradores
SET remuneracao = remuneracao * 1.1
WHERE departamento = 'TI';
Exclusão de Dados:
Diferente do DROP (que remove a tabela) ou TRUNCATE (que reinicia a tabela), o DELETE remove linhas específicas.
DELETE FROM colaboradores WHERE id_usuario = 2;
Ao utilizar TRUNCATE TABLE colaboradores;, todos os dados são apagados e os contadores de AUTO_INCREMENT são resetados, operando de forma mais performática que um DELETE sem filtros.