Guia básico de MySQL/MariaDB para Iniciantes: “Por onde começar”

O MySQL é um dos sistemas de gerenciamento de banco de dados mais usados no mundo, sendo essencial para desenvolvedores, administradores de sistemas e analistas de dados. Este guia cobre tudo o que você precisa para começar, com explicações detalhadas e exemplos que você pode testar imediatamente.

Nota: Atualmente, o MariaDB é amplamente utilizado como uma alternativa e evolução do MySQL. Ele mantém compatibilidade com os comandos do MySQL, oferecendo melhorias de desempenho e recursos adicionais. A maioria dos conceitos discutidos aqui aplica-se igualmente ao MariaDB.


1. O que é MySQL (e MariaDB)?

O MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto. Ele utiliza a linguagem SQL (Structured Query Language) para realizar operações como inserção, consulta, atualização e exclusão de dados.

E o MariaDB?

O MariaDB foi criado como um fork do MySQL, após a aquisição do MySQL pela Oracle. Ele é mantido por uma comunidade independente e oferece:

  • Compatibilidade: Todos os comandos SQL do MySQL funcionam no MariaDB.
  • Desempenho melhorado: Otimizações significativas em consultas e armazenamento.
  • Funcionalidades extras: Recursos como novas engines de armazenamento e suporte a colunas virtuais.

Por que usar MySQL ou MariaDB?

  • Popularidade: Amplamente utilizado em pequenos projetos até grandes corporações.
  • Velocidade: Ambos são otimizados para consultas rápidas.
  • Escalabilidade: Suportam desde aplicações simples até grandes volumes de dados.
  • Gratuito: As versões Community Edition são totalmente gratuitas.
  • Compatibilidade: Integram-se facilmente com PHP, Python, Java, e várias outras linguagens.

2. Estrutura de Banco de Dados

No MySQL e MariaDB, um banco de dados é composto por tabelas, que organizam os dados em linhas e colunas.

Conceitos fundamentais

  • Banco de dados: Contém todas as tabelas relacionadas ao sistema.
  • Tabela: Armazena os dados em linhas (registros) e colunas (atributos).
  • Coluna: Define o tipo de dado (exemplo: nome, idade, e-mail).
  • Linha: Cada registro individual na tabela.

Tipos de Dados

  • INT: Números inteiros.
  • VARCHAR(size): Texto com tamanho máximo especificado.
  • TEXT: Texto longo.
  • DATE: Datas no formato YYYY-MM-DD.
  • FLOAT: Números decimais.

Criando um banco e uma tabela

CREATE DATABASE escola;
USE escola;

CREATE TABLE alunos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(50),
    idade INT,
    curso VARCHAR(100),
    data_matricula DATE
);

3. Comandos Básicos de SQL

Criar um banco de dados

CREATE DATABASE nome_banco;
USE nome_banco;

Inserir registros em uma tabela

INSERT INTO alunos (nome, idade, curso, data_matricula)
VALUES ('João Silva', 20, 'Engenharia', '2024-11-25');

Consultar registros

SELECT * FROM alunos;
SELECT nome, curso FROM alunos WHERE idade > 18;

Atualizar registros

UPDATE alunos SET curso = 'Medicina' WHERE nome = 'João Silva';

Excluir registros

DELETE FROM alunos WHERE idade < 18;

4. Relacionamentos entre Tabelas

Tabelas podem ser relacionadas por meio de chaves primárias (PK) e chaves estrangeiras (FK).

Exemplo: Relacionando Alunos e Notas

CREATE TABLE notas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_aluno INT,
    disciplina VARCHAR(50),
    nota FLOAT,
    FOREIGN KEY (id_aluno) REFERENCES alunos(id)
);

Consultar informações relacionadas

SELECT alunos.nome, notas.disciplina, notas.nota
FROM alunos
INNER JOIN notas ON alunos.id = notas.id_aluno;

5. Funções Agregadas

Funções agregadas permitem realizar cálculos em conjuntos de dados.

Exemplos práticos

  • Contar registros: SELECT COUNT(*) AS total_alunos FROM alunos;
  • Média de notas: SELECT AVG(nota) AS media_notas FROM notas;
  • Maior e menor nota: SELECT MAX(nota) AS maior_nota, MIN(nota) AS menor_nota FROM notas;

6. Backups e Restauração

Manter backups do banco de dados é essencial para evitar perda de dados.

Criar um backup

mysqldump -u root -p escola > backup_escola.sql

Restaurar um backup

mysql -u root -p escola < backup_escola.sql

7. Dicas e Boas Práticas

  • Nomeação clara: Use nomes descritivos para tabelas e colunas, como usuarios, data_cadastro, etc.
  • Índices: Crie índices em colunas frequentemente consultadas para melhorar o desempenho. CREATE INDEX idx_nome ON alunos(nome);
  • Segurança: Limite privilégios de usuários do banco para evitar alterações indesejadas. GRANT SELECT, INSERT ON escola.* TO 'usuario_leitura'@'localhost';

Conclusão

Agora que você conhece os fundamentos do MySQL e do MariaDB, está pronto para criar e gerenciar bancos de dados para suas aplicações. Experimente os exemplos fornecidos e continue explorando conceitos mais avançados, como triggers, stored procedures e otimização de consultas.

Rolar para cima