v4 Atualização da v4 disponível — framework refeito do zero. Ver novidades

Docs
Voltar ao blog
MySQL

15 de August de 2026

Guia Prático de MySQL: Estrutura de Tabelas, Colunas e Comandos Essenciais

Aprenda os fundamentos do MySQL para aplicações web e jogos: entenda tabelas, colunas, tipos de dados, chaves primárias e como manipular dados com comandos SQL práticos.

Guia Prático de MySQL: Estrutura de Tabelas, Colunas e Comandos Essenciais

O MySQL é um dos bancos de dados relacionais mais utilizados no desenvolvimento de aplicações web, sistemas administrativos e servidores de jogos.

Neste guia prático, você vai aprender como o MySQL organiza os dados, como funcionam tabelas e colunas, quais são os principais tipos de dados e quais comandos são essenciais para criar e modificar estruturas.

Ao final, você também terá uma base para trabalhar com o banco de dados através da MuCRM.


1. O que é uma Tabela no MySQL?

Uma tabela é uma estrutura utilizada para armazenar informações relacionadas a uma determinada entidade ou finalidade dentro do banco de dados.

Uma forma simples de visualizar uma tabela é como uma planilha organizada:

Tabela: characters

┌────┬────────────────┬───────┬───────┐
│ id │ player_name    │ level │ class │
├────┼────────────────┼───────┼───────┤
│ 1  │ DragonKnight   │ 400   │ 1     │
│ 2  │ DarkWizard     │ 350   │ 2     │
│ 3  │ ElfMaster      │ 300   │ 3     │
└────┴────────────────┴───────┴───────┘

Cada parte possui uma função:

  • Tabela: representa um conjunto de informações.
  • Linha: representa um registro.
  • Coluna: representa uma característica do registro.

Por exemplo:

  • users → usuários ou contas.
  • characters → personagens.
  • guilds → guildas.
  • game_purchases → compras realizadas no jogo.

2. O que é uma Coluna?

Uma coluna representa uma informação que será armazenada para cada registro.

Por exemplo, uma tabela de personagens pode possuir:

characters
│
├── id
├── player_name
├── level
├── class
├── reset_count
└── created_at

Cada coluna possui um tipo de dado, que determina quais valores podem ser armazenados.


3. Principais Tipos de Dados do MySQL

Escolher corretamente o tipo de dado é importante para manter o banco organizado e evitar consumo desnecessário de espaço.

VARCHAR

Utilizado para textos com tamanho variável.

VARCHAR(100)

Exemplos:

Nome do personagem
Login
E-mail
Nome da guild
Nome de item

INT

Utilizado para números inteiros.

INT

Exemplos:

ID
Level
Reset
Quantidade
Pontuação

TINYINT

Utilizado para números inteiros pequenos.

TINYINT

É bastante utilizado para valores como:

Status
Ativo / Inativo
Flags
Tipos
Classes

BIGINT

Utilizado para números inteiros que podem atingir valores muito maiores que um INT.

BIGINT

Pode ser útil para:

  • IDs com grande volume.
  • Contadores.
  • Identificadores distribuídos.
  • Dados que podem ultrapassar o limite do INT.

DECIMAL

Utilizado quando precisamos trabalhar com valores decimais com precisão.

DECIMAL(10,2)

Por exemplo:

49.90
1500.50
9999.99

É especialmente recomendado para valores financeiros.


DATETIME

Armazena data e horário.

DATETIME

Exemplo:

2026-08-15 17:00:00

Pode ser utilizado para:

  • Data de criação.
  • Último login.
  • Data de compra.
  • Data de eventos.
  • Logs.

TIMESTAMP

Também permite armazenar data e horário.

TIMESTAMP

Um uso bastante comum é registrar automaticamente o momento em que um registro foi criado:

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

TEXT

Utilizado para textos maiores.

TEXT

Pode ser utilizado para:

  • Descrições.
  • Conteúdo de notícias.
  • Logs extensos.
  • Textos administrativos.

4. Criando uma Tabela

Para criar uma tabela utilizamos:

CREATE TABLE

Por exemplo:

CREATE TABLE game_purchases (
    id INT AUTO_INCREMENT PRIMARY KEY,
    player_id INT NOT NULL,
    item_name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    status VARCHAR(20) DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Essa tabela representa um registro de compras realizadas no jogo.


5. Entendendo a Estrutura da Tabela

AUTO_INCREMENT

AUTO_INCREMENT

Faz com que o MySQL gere automaticamente o identificador do registro.

Por exemplo:

1
2
3
4
5

No nosso exemplo:

id INT AUTO_INCREMENT PRIMARY KEY

Não precisamos informar o id manualmente ao inserir uma compra.


PRIMARY KEY

PRIMARY KEY

Define a chave primária da tabela.

Ela é utilizada para identificar exclusivamente cada registro.

Exemplo:

id INT PRIMARY KEY

Dessa forma, dois registros não podem possuir o mesmo valor de chave primária.


NOT NULL

NOT NULL

Indica que o campo é obrigatório.

Por exemplo:

player_id INT NOT NULL

Uma compra não poderá ser criada sem informar o jogador.


DEFAULT

DEFAULT

Define um valor padrão caso nenhum valor seja enviado.

Exemplo:

status VARCHAR(20) DEFAULT 'pending'

Se o status não for informado durante o INSERT, o MySQL utilizará:

pending

6. ENGINE=InnoDB

No final da criação da tabela podemos definir:

ENGINE=InnoDB

O InnoDB é o mecanismo de armazenamento mais utilizado no MySQL e oferece recursos importantes, como suporte a transações e integridade referencial.

Exemplo:

CREATE TABLE game_purchases (
    id INT AUTO_INCREMENT PRIMARY KEY,
    player_id INT NOT NULL,
    item_name VARCHAR(100) NOT NULL
) ENGINE=InnoDB;

7. CHARSET=utf8mb4

Também podemos definir o conjunto de caracteres da tabela:

DEFAULT CHARSET=utf8mb4

O utf8mb4 possui suporte amplo a caracteres Unicode, incluindo caracteres especiais e emojis.

Exemplo:

CREATE TABLE game_purchases (
    id INT AUTO_INCREMENT PRIMARY KEY,
    item_name VARCHAR(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

8. Alterando uma Tabela Existente

Quando uma aplicação cresce, é comum precisar adicionar novas informações.

Por exemplo:

  • Sistema VIP.
  • Pontos.
  • Tags.
  • Novas configurações.
  • Informações de eventos.
  • Novos campos administrativos.

Não é necessário apagar e recriar a tabela.

Utilizamos:

ALTER TABLE

8.1. Adicionando uma Coluna

Para adicionar uma coluna:

ALTER TABLE characters
ADD vip_level INT DEFAULT 0 NOT NULL AFTER player_name;

Nesse exemplo, adicionamos:

vip_level

com valor padrão:

0

O AFTER player_name indica a posição da nova coluna na estrutura da tabela.


9. Modificando uma Coluna

Para alterar a definição de uma coluna no MySQL utilizamos:

MODIFY

Exemplo:

ALTER TABLE users
MODIFY email VARCHAR(150) NOT NULL;

Nesse caso, o campo email passa a aceitar até 150 caracteres e continua sendo obrigatório.


10. Renomeando uma Coluna

No MySQL 8+, podemos utilizar:

RENAME COLUMN

Exemplo:

ALTER TABLE characters
RENAME COLUMN nick TO player_name;

A coluna:

nick

passará a se chamar:

player_name

11. Removendo uma Coluna

Para remover uma coluna:

ALTER TABLE characters
DROP COLUMN temp_flag;

Isso remove a coluna temp_flag da tabela.

Atenção: ao utilizar DROP COLUMN, os dados armazenados naquela coluna serão removidos. Sempre faça um backup antes de executar alterações destrutivas em um banco de produção.


12. Inserindo Registros

Para inserir dados utilizamos:

INSERT INTO

Exemplo:

INSERT INTO game_purchases (
    player_id,
    item_name,
    price,
    status
)
VALUES (
    1042,
    'Asa Nível 3',
    49.90,
    'completed'
);

O id não precisa ser informado porque ele utiliza AUTO_INCREMENT.

Da mesma forma, created_at será preenchido automaticamente por:

DEFAULT CURRENT_TIMESTAMP

13. Consultando Registros

Para consultar dados utilizamos:

SELECT

Por exemplo:

SELECT
    id,
    player_id,
    item_name,
    price
FROM game_purchases;

Também podemos utilizar filtros.


Utilizando WHERE

O WHERE permite retornar somente os registros que atendem a determinada condição.

SELECT
    id,
    player_id,
    item_name,
    price
FROM game_purchases
WHERE status = 'completed';

Nesse caso, somente as compras com status completed serão retornadas.


14. Ordenando os Resultados

Podemos utilizar ORDER BY para definir a ordem dos resultados.

SELECT
    id,
    player_id,
    item_name,
    price,
    created_at
FROM game_purchases
WHERE status = 'completed'
ORDER BY created_at DESC;

O:

DESC

ordena do mais recente para o mais antigo.

Já:

ASC

ordena do menor para o maior ou do mais antigo para o mais recente, dependendo da coluna.


15. Atualizando Registros

Para alterar informações existentes utilizamos:

UPDATE

Por exemplo:

UPDATE game_purchases
SET status = 'delivered'
WHERE id = 1;

Esse comando altera o status da compra cujo id seja 1.

Atenção: tenha muito cuidado com UPDATE sem WHERE. Sem uma condição, você pode alterar todos os registros da tabela.


16. Estrutura Básica de um Banco de Dados

Uma aplicação normalmente trabalha com diversas tabelas relacionadas.

Um projeto de servidor de jogo pode possuir uma estrutura semelhante a:

Banco de Dados
│
├── users
│   └── Contas
│
├── characters
│   └── Personagens
│
├── guilds
│   └── Guildas
│
├── game_purchases
│   └── Compras
│
└── game_events
    └── Eventos

Cada tabela possui uma responsabilidade específica.

A aplicação pode então consultar essas estruturas para construir funcionalidades maiores.


17. MySQL e a MuCRM

A MuCRM pode utilizar diferentes bancos de dados conforme a necessidade do projeto.

Quando o MySQL é utilizado, a aplicação pode trabalhar com as tabelas e registros através da camada de banco de dados da framework.

O fluxo conceitual pode ser representado assim:

MySQL
  │
  ▼
Tabelas
  │
  ▼
Models / Query Builder
  │
  ▼
Controllers
  │
  ├── Views
  │
  └── API

Isso permite utilizar os dados do banco para construir funcionalidades como:

  • Players Online.
  • Rankings.
  • Personagens.
  • Guildas.
  • Eventos.
  • Sistemas de compra.
  • Sistemas administrativos.
  • APIs.
  • Dashboards.

18. Comandos Essenciais

Os principais comandos apresentados neste guia são:

Comando Função
CREATE TABLE Cria uma tabela
ALTER TABLE Altera uma tabela existente
INSERT INTO Insere registros
SELECT Consulta registros
WHERE Filtra resultados
ORDER BY Ordena resultados
UPDATE Atualiza registros
DROP COLUMN Remove uma coluna
RENAME COLUMN Renomeia uma coluna

Conclusão

Compreender tabelas, colunas, tipos de dados e comandos SQL é fundamental para trabalhar com aplicações que utilizam MySQL.

Os conceitos apresentados neste guia formam uma base para começar a estruturar e manipular bancos de dados:

CREATE TABLE
      ↓
ALTER TABLE
      ↓
INSERT INTO
      ↓
SELECT
      ↓
WHERE
      ↓
UPDATE

Com essa base, você já consegue criar novas estruturas, adicionar funcionalidades ao banco, inserir informações, consultar registros e modificar dados existentes.

Conforme o projeto cresce, novos conceitos como JOIN, índices, relacionamentos, chaves estrangeiras, transações, migrations e otimização de consultas tornam-se importantes para manter o banco organizado, seguro e performático.

Pronto para colocar o servidor no ar?

Licença Master a partir de R$ 24,99/mês.

Ver planos

Presente exclusivo

7 dias grátis

Crie sua conta agora e ganhe acesso completo por 7 dias.

Ao criar sua conta, você concorda com nossos Termos e Políticas.