Ao criar uma coluna no MySQL, você escolhe o tipo de dado que melhor se adequa ao tipo de informação que será armazenada. Aqui estão os detalhes e exemplos para alguns dos tipos de campos comuns, começando com INT:
1. INT (Integer)
- Descrição: Armazena números inteiros sem decimais.
- Tamanho: Pode ser configurado para ocupar de 1 a 11 dígitos, dependendo do tamanho especificado e do atributo de sinal.
- Quando usar: Ideal para dados que não requerem decimais, como idade, quantidade de itens, etc.
- Vantagens: Boa performance para operações matemáticas.
- Desvantagens: Limitação na faixa de valores (até cerca de 2 bilhões ou 4 bilhões para UNSIGNED).
- Exemplos:
- INT: Intervalo padrão de -2147483648 a 2147483647 para valores com sinal.
- UNSIGNED INT: De 0 a 4294967295, pois não permite negativos.
CREATE TABLE exemplo (
id INT,
idade INT UNSIGNED
);
2. VARCHAR
- Descrição: Tipo de dado de string variável.
- Tamanho: Pode armazenar de 1 a 65535 caracteres, sendo necessário especificar o limite.
- Quando usar: Textos de tamanho variável e conhecido, como emails, nomes de cidades.
- Vantagens: Economiza espaço se o texto for menor que o tamanho máximo definido.
- Desvantagens: Overhead de armazenamento para manter o tamanho do campo.
- Exemplos:
- VARCHAR(255): Comum para armazenar textos curtos como nomes ou títulos.
CREATE TABLE exemplo (
nome VARCHAR(100),
email VARCHAR(255)
);
- VARCHAR(255): Comum para armazenar textos curtos como nomes ou títulos.
3. TEXT
- Descrição: Para textos longos.
- Tamanho: Armazena até 65.535 caracteres.
- Quando usar: Artigos, comentários de usuários, e outros textos extensos.
- Vantagens: Capacidade de armazenar grandes quantidades de texto.
- Desvantagens: Pode impactar a performance em consultas muito grandes ou complexas.
- Exemplos:
- TEXT: Ideal para comentários ou mensagens de texto.
CREATE TABLE exemplo (
descricao TEXT
);
- TEXT: Ideal para comentários ou mensagens de texto.
4. DATE, DATETIME, TIMESTAMP
- Descrição: DATE armazena apenas datas no formato YYYY-MM-DD, DATETIME e TIMESTAMP armazenam data e hora.
- Quando usar: DATE para datas sem horário, DATETIME para quando a zona horária não é relevante, e TIMESTAMP para registros automáticos de criação/modificação.
- Vantagens: Conversão automática de timezone com TIMESTAMP.
- Desvantagens: TIMESTAMP tem um alcance mais limitado de datas.
- Exemplos:
- DATE: Usado para datas de nascimento, datas de eventos etc.
CREATE TABLE exemplo (
data_nascimento DATE
criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- DATE: Usado para datas de nascimento, datas de eventos etc.
5. FLOAT e DOUBLE
- Descrição: Números de ponto flutuante. FLOAT é para precisão simples e DOUBLE para precisão dupla.
- Tamanho: FLOAT pode representar números com até aproximadamente 7 dígitos decimais e DOUBLE até 15.
- Quando usar: Cálculos que requerem frações, como pesos ou preços.
- Vantagens: FLOAT é bom para armazenamento compacto, DOUBLE oferece mais precisão.
- Desvantagens: Precisão pode ser afetada em operações matemáticas complexas.
- Exemplos:
- FLOAT: Usado para armazenar valores com menos precisão de cálculo.
- DOUBLE: Mais preciso para cálculos financeiros ou científicos.
CREATE TABLE exemplo (
altura FLOAT,
preco DOUBLE(10,2)
);
6. BOOLEAN
- Descrição: Armazena TRUE ou FALSE.
- Exemplos:
- BOOLEAN: Internamente representado como TINYINT(1), onde 0 é false e 1 é true.
CREATE TABLE exemplo (
ativo BOOLEAN
);
- BOOLEAN: Internamente representado como TINYINT(1), onde 0 é false e 1 é true.
7. BLOB
- Descrição: Para armazenar dados binários como imagens, arquivos de áudio, etc.
- Tamanho: Diferentes tipos de BLOB podem armazenar diferentes quantidades, como TINYBLOB, BLOB, MEDIUMBLOB, e LONGBLOB.
- Quando usar: Armazenamento de arquivos dentro do banco de dados.
- Vantagens: Útil para garantir a integridade dos dados binários com o banco.
- Desvantagens: Aumenta muito o tamanho do banco de dados e pode reduzir a performance.
- Exemplos:
- BLOB: Adequado para imagens ou documentos de tamanho médio.
CREATE TABLE exemplo (
foto BLOB
);
- BLOB: Adequado para imagens ou documentos de tamanho médio.
8. CHAR
- Descrição: String de comprimento fixo.
- Quando usar: Dados de tamanho constante, como códigos de estado, sexo.
- Vantagens: Acesso mais rápido devido ao tamanho fixo.
- Desvantagens: Desperdício de espaço se o tamanho do campo for geralmente maior que o conteúdo necessário.
- Exemplos:
CREATE TABLE produtos (
codigo CHAR(5)
);
9. ENUM
- Descrição: Lista de valores pré-definidos.
- Quando usar: Campos com um conjunto limitado de valores, como status ou categorias.
- Vantagens: Restringe entrada de dados a valores válidos.
- Desvantagens: Alterar a lista de valores após a criação da tabela pode ser complicado.
- Exemplos:
CREATE TABLE pedidos (
status ENUM('pendente', 'aprovado', 'entregue')
);
10. SET
- Descrição: Coleção de strings.
- Quando usar: Quando um elemento pode ter múltiplas propriedades marcadas.
- Vantagens: Permite múltiplas seleções de um conjunto definido de strings.
- Desvantagens: Não é tão flexível ou escalável quanto uma tabela relacionada.
- Exemplos:
CREATE TABLE recursos (
features SET('wifi', 'ar-condicionado', 'piscina')
);