Login
Login

Tipos de dados do MySQL: visão geral, exemplos de uso e boas práticas

Tipos de dados do MySQL: visão geral, exemplos de uso e boas práticas
Hostman Team
Technical writer
MySQL Banco
19.01.2026
Reading time: 7 min

Ao configurar um banco de dados no MySQL, o usuário deve atribuir um nome e um tipo de dado a cada coluna de uma tabela. Esse processo ajuda o sistema a entender exatamente que tipo de informação será armazenada e como ela será processada, além de determinar a quantidade de memória necessária.

Existem várias classes principais de tipos de dados nas tabelas do MySQL, incluindo tipos numéricos, de caracteres, de data e hora, entre outros. Cada classe contém vários tipos de dados específicos. É importante defini-los corretamente na fase inicial de criação da tabela para evitar problemas quando a estrutura completa do banco de dados estiver finalizada.

Este artigo descreve os principais tipos de dados do MySQL, sua estrutura, valores válidos e uso recomendado.

Tipos numéricos

O MySQL oferece suporte a todos os tipos de dados numéricos padrão do SQL, usados para armazenar números. Este artigo aborda:

  • Inteiros

  • Números de ponto flutuante

  • Números de ponto fixo

Cada um deles é descrito com mais detalhes a seguir.

Inteiros

Usados para armazenar números inteiros com ou sem sinal. Tipos com sinal podem armazenar valores positivos e negativos, enquanto tipos sem sinal armazenam apenas valores positivos, o que efetivamente dobra o intervalo disponível.

Existem cinco tipos principais de inteiros: TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT. A principal diferença entre eles é o intervalo de valores que podem armazenar — quanto maior o intervalo, maior o consumo de memória. É importante escolher o tipo adequado para alocar memória de forma eficiente ao criar tabelas.

Tipo

Memória (bytes)

Intervalo com sinal

Intervalo sem sinal

TINYINT

1

−2⁷ a 2⁷−1

0 a 2⁸−1

SMALLINT

2

−2¹⁵ a 2¹⁵−1

0 a 2¹⁶−1

MEDIUMINT

3

−2²³ a 2²³−1

0 a 2²⁴−1

INT

4

−2³¹ a 2³¹−1

0 a 2³²−1

BIGINT

8

−2⁶³ a 2⁶³−1

0 a 2⁶⁴−1

Especificar um tamanho (por exemplo, MEDIUMINT(6)) não afeta o intervalo de valores. Isso é apenas estético e usado por algumas ferramentas para preencher números menores com espaços.
Também é possível usar o atributo ZEROFILL para preencher com zeros em vez de espaços. Por exemplo, SMALLINT(8) ZEROFILL exibirá 256 como 00000256.

Números de ponto flutuante

Usados para armazenar valores numéricos aproximados. O MySQL permite definir a precisão da seguinte forma:

FLOAT(p)

Onde p é a precisão, variando de 0 a 53.

  • Se p < 25, é usado FLOAT (precisão simples).

  • Caso contrário, é usado DOUBLE (precisão dupla).

Tipo

Memória (bytes)

Intervalo de valores

FLOAT

4

~±3,4028 × 10³⁸

DOUBLE

8

~±1,7976 × 10³⁸

Números de ponto fixo

Usados para armazenar valores exatos com uma precisão definida. Os tipos DECIMAL ou NUMERIC são utilizados, geralmente em cálculos financeiros onde o arredondamento não é aceitável.

Definição:

DECIMAL(M, D)

  • M: número total de dígitos (até 65; padrão 10)

  • D: número de dígitos após o ponto decimal (0–30; padrão 0)

Exemplo:

DECIMAL(6, 3)

Armazena valores de -999.999 a 999.999.
DECIMAL e NUMERIC são funcionalmente equivalentes.

Tipos de caracteres

Projetados para armazenar textos curtos, os tipos de dados de caracteres no MySQL incluem CHAR e VARCHAR. Eles são semelhantes, mas diferem na forma como os dados são armazenados e recuperados.

CHAR armazena uma string de comprimento fixo (de 0 a 2⁸−1 caracteres), definida no momento da criação da tabela. Se uma string menor for inserida, os caracteres restantes são preenchidos com espaços.

VARCHAR armazena uma string de comprimento variável (de 0 a 2¹⁶−1 caracteres). Diferentemente de CHAR, ele armazena apenas os caracteres reais e utiliza 1 byte adicional para registrar o comprimento da string.

Se a string de entrada exceder o comprimento definido para CHAR ou VARCHAR, ela será truncada.

Durante a criação da tabela, se colunas CHAR e VARCHAR forem combinadas, o MySQL converterá automaticamente CHAR em VARCHAR.

Comparação entre CHAR(5) e VARCHAR(5)

String

CHAR(5)

VARCHAR(5)

'A'

'A '

'A'

'Hello'

'Hello'

'Hello'

'Example'

'Examp'

'Examp'

Tipos TEXT e binários

O tipo TEXT é usado para armazenar grandes volumes de texto, enquanto BLOB é projetado para dados binários, como imagens, código compilado ou áudio.

Principais diferenças:

  • BLOB: ordenação e comparações diferenciam maiúsculas de minúsculas.

  • TEXT: ordenação e comparações não diferenciam maiúsculas de minúsculas.

O MySQL não consegue indexar o comprimento total de campos TEXT ou BLOB, nem suporta ordenação usando índices de campo completo.
Se o comprimento da string exceder o máximo permitido, a entrada será truncada.

Tipos TEXT

Tipo

Memória (bytes)

Máx. caracteres

TINYTEXT

2⁸−1

até 2⁸−1

TEXT

2¹⁶−1

até 2¹⁶−1

MEDIUMTEXT

2²⁴−1

até 2²⁴−1

LONGTEXT

2³²−1

até 2³²−1

Tipos BLOB

Tipo

Memória (bytes)

Máx. bytes

TINYBLOB

2⁸−1

até 2⁸−1

BLOB

2¹⁶−1

até 2¹⁶−1

MEDIUMBLOB

2²⁴−1

até 2²⁴−1

LONGBLOB

2³²−1

até 2³²−1

Data e hora

O MySQL fornece vários tipos de dados para armazenar informações de data e hora:

Tipo

Memória (bytes)

Descrição

DATE

3

Armazena apenas a data no formato YYYY-MM-DD.

DATETIME

8

Armazena data e hora no formato YYYY-MM-DD HH:MM:SS.

TIMESTAMP

4

Semelhante ao DATETIME, mas com intervalo menor (1970–2038).

TIME

3

Armazena apenas a hora, de −838:59:59 a 838:59:59.

YEAR

1

Armazena apenas o ano no formato YYYY.

JSON

O MySQL oferece suporte nativo ao tipo de dado JSON desde a versão 5.7.8, com as seguintes vantagens:

  • Validação automática de dados JSON.

  • Formato de armazenamento binário otimizado para acesso e consultas mais rápidas.

O consumo de memória é aproximadamente equivalente ao LONGTEXT.

Tipos compostos

O MySQL fornece tipos de dados especiais baseados em strings que armazenam valores de um conjunto fixo predefinido: ENUM e SET.

  • ENUM armazena um único valor da lista e utiliza até 2 bytes de memória.

  • SET pode armazenar até 26 valores simultaneamente e utiliza até 8 bytes de memória.

Exemplo

ENUM('a', 's', 'd')

A coluna pode conter apenas um dos seguintes valores: 'a', 's' ou 'd'.

SET('a', 's', 'd')

A coluna pode conter qualquer combinação dos valores, incluindo:
'a', 's', 'd', 'a,s', 'a,d', 's,d', 'a,s,d' ou um conjunto vazio ('').

Se um valor como ('a', 's', 'a') for inserido em um SET, o MySQL removerá automaticamente os duplicados e os ordenará com base na ordem original de declaração. O valor armazenado será 'a,s'.

Conclusão

Este artigo apresentou os tipos de dados do MySQL mais comumente usados para definir colunas de tabelas. Com esse conhecimento, os usuários podem selecionar os tipos apropriados e projetar a estrutura do banco de dados de forma eficaz. Para tipos menos comuns e informações mais detalhadas, consulte a documentação oficial do MySQL.

Você pode utilizar bancos de dados em nuvem da Hostman para praticar o uso do MySQL e seus diferentes tipos de dados. As principais vantagens de usar MySQL na nuvem incluem:

  • Manutenção e configuração do banco de dados pelo provedor de serviços

  • Alta confiabilidade, disponibilidade e tolerância a falhas

  • Backups automáticos

  • Escalabilidade horizontal e vertical rápida

  • Operação contínua por meio de replicação em cluster

  • Execução do banco de dados sobre os recursos computacionais de uma plataforma em nuvem

MySQL Banco
19.01.2026
Reading time: 7 min

Semelhante

O sistema Debian

Como instalar o MySQL no Debian

Instalar o MySQL no Debian cria uma infraestrutura de banco de dados robusta e flexível, adequada para uma ampla gama de aplicações e serviços. O MySQL é conhecido por sua escalabilidade, confiabilidade e estabilidade. Ao configurá-lo corretamente, é possível executar operações de forma eficiente e melhorar o desempenho geral da infraestrutura de banco de dados. Essa combinação é especialmente vantajosa para administradores de sistemas, analistas de banco de dados e empresas que necessitam de uma solução confiável para lidar com grandes volumes de dados. Além disso, a documentação abrangente do MySQL e sua comunidade ativa facilitam a solução de problemas e a otimização das operações. Neste guia, vamos demonstrar passo a passo como instalar e configurar o MySQL no Debian. Como instalar o MySQL no Debian Los repositorios predeterminados no contienen el paquete del servidor de bases de datos MySQL en Debian. Para instalarlo en un sistema Linux, siga las instrucciones que se indican a continuación. Descargaremos la versión más reciente de MySQL. Passo 1: Baixe o pacote do MySQL Baixe o arquivo de configuração do repositório do MySQL no formato .deb: wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb Nota: Verifique no site oficial do MySQL se esta é a versão mais recente antes de prosseguir. Passo 2: Instale o pacote de configuração do MySQL Use o arquivo .deb baixado para iniciar a instalação com o dpkg: sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb Responda às solicitações do assistente de configuração. Por exemplo, selecione "MySQL Server & Cluster" e pressione Enter para continuar. Se necessário, role para selecionar a versão desejada (por exemplo, mysql-8.4-lts), e pressione OK para avançar. Passo 3: Atualize o sistema Atualize os índices de pacotes do sistema para aplicar as informações recém-adicionadas do repositório MySQL: sudo apt update Passo 4: Instale o MySQL O gerenciador de pacotes padrão do Debian facilita a instalação do MySQL. Execute o seguinte comando para instalar: sudo apt install mysql-server -y Durante a instalação, será exibida uma interface para definir a senha do usuário root. Digite uma senha forte para proteger o banco de dados e pressione OK. Depois, verifique a versão instalada com: mysql --version Passo 5: Gerencie os serviços Ative o serviço do MySQL para que ele seja iniciado automaticamente junto com o sistema: sudo systemctl enable mysql Inicie o serviço manualmente com o comando: sudo systemctl start mysql Verifique o status atual do serviço: sudo systemctl status mysql Antes de abrir a porta 3306 para acesso externo, confira nosso tutorial sobre Como criar um túnel SSH para o MySQL – ele mostra como redirecionar conexões via SSH para evitar expor o MySQL diretamente à internet. Passo 6: Instalação segura do MySQL A senha definida anteriormente protege o usuário root no servidor. No entanto, o MySQL vem com algumas configurações padrão inseguras, como acesso remoto ao banco de teste e a existência de usuários anônimos. Para reforçar a segurança, execute o seguinte script: sudo mysql_secure_installation Para ativar o módulo VALIDATE PASSWORD e garantir políticas de senha mais rigorosas, digite Y e pressione Enter. Depois, você será solicitado a configurar várias opções de segurança: Definir a senha do usuário root: Escolha uma senha forte e certifique-se de digitá-la corretamente. Em seguida, será solicitado que você defina uma política de senhas para o servidor de banco de dados. Por exemplo, digite 2 para exigir apenas senhas fortes e pressione Enter. Quando for perguntado se deseja alterar a senha root que acabou de definir, digite N para manter ou Y para alterá-la.   Remover usuários anônimos: É recomendável remover o acesso de usuários anônimos ao banco de dados. Para isso, digite Y e pressione Enter quando solicitado.   Impedir o acesso remoto do root: Por questões de segurança, é melhor desativar o login remoto com o usuário root. Para evitar esse tipo de acesso, digite Y e pressione Enter.   Excluir o banco de dados de teste: O banco de testes, usado em ambientes de desenvolvimento, pode representar um risco se permanecer ativo. Para excluí-lo, digite Y e pressione Enter.   Atualizar as tabelas de privilégios: Isso garante que todas as alterações feitas até agora entrem em vigor imediatamente. Pressione Enter para concluir. Passo 7: Acesse o MySQL Use a ferramenta de linha de comando mysql para conectar-se ao servidor de banco de dados e acessar o console interativo. Digite o seguinte comando e forneça a senha definida durante a instalação segura. Uma vez dentro do console, você pode executar comandos SQL diretamente no servidor de banco de dados. sudo mysql -u root -p Passo 8: Operações básicas no MySQL É uma boa prática criar um banco de dados e um novo usuário para suas aplicações, ao invés de usar diretamente o root. Veja como fazer isso: Criar um banco de dados: Primeiro, crie o banco. Por exemplo, use o seguinte comando para criar o banco hostmandb: CREATE DATABASE hostmandb; Listar todos os bancos de dados: Verifique se o banco foi criado corretamente: SHOW DATABASES; Criar um novo usuário: Crie um usuário e defina uma senha segura. Neste exemplo, criamos o usuário minhal com a senha Qwer@1234. Substitua por dados próprios: CREATE USER 'minhal'@'localhost' IDENTIFIED BY 'Qwer@1234'; Conceder permissões ao usuário: Dê acesso total ao banco hostmandb para o novo usuário: GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost'; Atualizar privilégios: Aplique as mudanças: FLUSH PRIVILEGES; Sair do console: Digite: EXIT; Testar o login com o novo usuário: Para verificar se o acesso ao banco hostmandb está funcionando, conecte-se como o novo usuário: sudo mysql -u minhal -p Digite a senha do usuário quando solicitado e, para confirmar o acesso, liste os bancos: SHOW DATABASES; Passo 9: Configurar acesso remoto Se você precisar acessar o MySQL remotamente, será necessário configurar o servidor para permitir conexões externas. Siga os passos abaixo: Abra o arquivo de configuração do MySQL: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Encontre a linha com bind-address e altere para: bind-address = 0.0.0.0 Reinicie o serviço do MySQL para aplicar a mudança: sudo systemctl restart mysql Conceda permissões de acesso remoto ao usuário: sudo mysql -u root -p GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost';FLUSH PRIVILEGES;EXIT; Passo 10: Configurar o firewall Se o seu servidor estiver com o firewall ativado, será necessário liberar a porta padrão do MySQL (3306) para permitir conexões externas. Siga os passos abaixo: Permita o tráfego do MySQL: sudo ufw allow mysql Ative o UFW (caso ainda não esteja ativo): sudo ufw enable Recarregue o firewall para aplicar as alterações: sudo ufw reload Passo 11: Backup e restauração Manter backups regulares é essencial para evitar a perda de dados. O MySQL fornece a ferramenta mysqldump para facilitar a criação dessas cópias de segurança. Veja como usá-la: Backup de um banco de dados específico: Este comando usa o mysqldump para criar um backup do banco hostmandb em um arquivo chamado hostmandb_backup.sql: sudo mysqldump -u root -p hostmandb> hostmandb_backup.sql Backup de todos os bancos de dados: Se quiser fazer uma cópia de segurança de todas as bases existentes, use: sudo mysqldump -u root -p --all-databases > all_databases_backup.sql Restaurar um banco de dados: Para restaurar o conteúdo do arquivo de backup hostmandb_backup.sql de volta ao banco hostmandb: sudo mysql -u root -p hostmandb < hostmandb_backup.sql Passo 12: Otimizar o desempenho do MySQL (opcional) Dependendo da carga de trabalho e dos recursos do servidor, é possível ajustar algumas configurações para garantir o desempenho máximo do MySQL. Veja como: Ajustar o tamanho do InnoDB Buffer Pool: O buffer pool armazena em cache os dados e índices usados com frequência. Aumentar o seu tamanho pode melhorar significativamente o desempenho do banco. Abra o arquivo de configuração do MySQL: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Adicione ou edite a seguinte linha: innodb_buffer_pool_size = 1G Ajuste esse valor com base na quantidade de memória disponível no servidor. Ativar o cache de consultas (Query Cache): O cache de consultas armazena os resultados de comandos SELECT, acelerando as respostas para consultas repetidas. sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf No mesmo arquivo .cnf, adicione ou modifique estas linhas: query_cache_type = 1query_cache_size = 64M Otimizar a estrutura das tabelas: Otimizar regularmente tabelas específicas ajuda a recuperar espaço desperdiçado e melhorar o desempenho. Exemplo com a tabela customers do banco hostmandb: USE hostmandb;OPTIMIZE TABLE customers; Analisar operações e desempenho: Ferramentas como o MySQL Workbench e o mysqltuner ajudam a monitorar e ajustar o banco com base nas métricas coletadas. Instale o mysqltuner com: sudo apt install mysqltuner Execute a ferramenta para receber recomendações de otimização: sudo mysqltuner Conclusão Configurar um ambiente MySQL é essencial no mundo digital atual. Ao seguir este guia passo a passo, você será capaz de instalar e conectar-se ao seu banco de dados MySQL com segurança. Essa abordagem não só fortalece a segurança como também melhora a eficiência da administração remota do banco de dados. Além disso, ela ajuda a prevenir falhas e garante a confidencialidade dos dados armazenados. Este artigo apresentou instruções completas para a instalação do MySQL no Debian. É altamente recomendado monitorar e otimizar regularmente os servidores MySQL para garantir o desempenho ideal e alta confiabilidade. A Hostman também oferece bancos de dados em nuvem pré-configurados e prontos para uso – incluindo opções de MySQL em nuvem – que economizam tempo e facilitam a implantação para aplicações críticas.
16 July 2025 · 9 min to read

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support