Ao criar uma tabela em um banco de dados, ela deve ter um nome e um tipo de dados. O tipo de dados de uma coluna define os valores que a coluna contém, como inteiro, dinheiro, binário, caractere, data e hora. Portanto, é tarefa do desenvolvedor determinar quais tipos de dados serão armazenados em cada coluna ao criar bancos de dados e tabelas.
Em termos simples, os tipos de dados são diretrizes que ajudam o SQL a entender que tipo de dados é necessário dentro de uma coluna. Também é eficiente na identificação de como o SQL interage com os dados armazenados.
Um ponto a ser observado é que os tipos de dados podem conter nomes diferentes em bancos de dados diferentes e, nos casos em que os nomes são os mesmos, outros aspectos e detalhes, como tamanho, serão diferentes. Portanto, é recomendável que você sempre consulte a documentação sempre que encontrar casos semelhantes.
As seguintes características podem identificar tipos de dados no MySQL:
- Os valores dos tipos de dados que podem ser indexados e aqueles que não podem ser indexados
- O tipo de valores que eles representam
- O espaço que ocupam, sejam os valores de comprimento variável ou fixo
- Como o MySQL se compara aos diferentes valores de tipos de dados específicos
Antes de nos aprofundarmos e cobrirmos os tipos de dados do MySQL, é essencial aprender e entender as convenções usadas pelas descrições dos tipos de dados, conforme destacado abaixo:
- (M ):Para tipos inteiros, indica a largura máxima que o tipo de dados pode exibir.
:Indica o número total de dígitos que podem ser armazenados para tipos de ponto fixo e tipos de ponto flutuante.
:Para tipos de string, mostra o comprimento máximo
Observação:M O valor máximo permitido de 's depende do tipo de dados
• (D ):Aplica-se apenas a tipos de ponto fixo e tipos de ponto flutuante. Indica a escala (o número de dígitos que seguem o ponto decimal). O valor máximo possível é 10, mas não deve ser mais significativo que M -2
• Os colchetes ([e]) mostram as partes opcionais do tipo de definição.
• f sp: essa convenção se aplica aos tipos timestamp, DateTime e time. Ele representa a precisão de segundos fracionários (o número de dígitos que seguem o ponto decimal para segundos fracionários). O fsp fornecido valor deve variar de 0-6. O valor 0 significa que não há partes fracionárias presentes no valor fornecido. No entanto, nos casos em que o valor é omitido, a precisão é denotada como 0.
No MySQL, existem três categorias principais de tipos de dados que contêm subcategorias. Os principais tipos de dados são:
- Tipos de dados de string
- Tipos de dados de data e hora.
- Tipos de dados numéricos
Existem outros tipos de dados suportados pelo MySQL, como tipos de dados espaciais e tipos de dados JSON.
Este artigo deve abranger de forma abrangente todos os tipos de dados mencionados acima. Portanto, para obter uma compreensão clara dos tipos de dados, siga este artigo.
Tipos de dados de string
Os tipos de dados string são usados principalmente para armazenar dados binários e texto simples, como imagens e arquivos. Além disso, o MYSQL tem a capacidade de comparar e pesquisar valores de string com base no padrão de correspondência, como expressões regulares e operadores.
Abaixo está uma ilustração detalhada de todos os tipos de dados de string que o MySQL suporta:
CHAR ( tamanho ): Este é o comprimento fixo de uma string. Pode conter letras, caracteres especiais ou números. O parâmetro tamanho denota o comprimento da coluna em caracteres e pode variar de 0 a 255. O tamanho padrão é 1.
VARCHAR ( tamanho ): Este é o comprimento variável de uma string. Ele contém números, caracteres especiais ou letras. O parâmetro tamanho mostra o comprimento máximo da coluna em caracteres e pode variar de 0 a 65535.
BINÁRIO ( tamanho ): Estes são iguais a CHAR(), armazenando apenas strings de bytes binários. O parâmetro tamanho especifica o comprimento da coluna em bytes. O padrão é 1
VARBINÁRIO ( tamanho ): Isso é igual a VARCHAR(), só que armazena strings de bytes binários. O parâmetrotamanho especifica o comprimento máximo da coluna em bytes.
TINYTEXT: Contém strings que contêm um comprimento máximo de 255 caracteres.
TEXTO ( tamanho ): Contém cadeias de caracteres que contêm um comprimento máximo de 65.535 bytes.
BLOB ( tamanho ): Para Objetos Binários Grandes (BLOBs). Eles armazenam até 65.535 bytes de dados.
TINYBLOB: Para Objetos Binários Grandes (BLOBs). Ele contém um comprimento máximo de 255 bytes.
LONGLOB: Para Objetos Binários Grandes (BLOBs). Eles armazenam até 4.294.967.295 bytes de dados.
TEXTO LONGO: Contém strings que contêm um comprimento máximo de 4.294.967.295 caracteres.
TEXTO MÉDIO: Contém cadeias de caracteres que contêm um comprimento máximo de 16.777.215 caracteres.
MEDIUMBLOB: Para Objetos Binários Grandes (BLOBs). Eles armazenam até 16.777.215 bytes de dados.
CONFIGURAR ( val1, val2, val3, … ): Este é um objeto string que contém mais de um valor (strings que contêm 0 ou mais valores). Eles são escolhidos de uma lista de valores possíveis, assim como ENUM. No entanto, em uma lista SET, você só pode listar até 64 valores.
ENUM ( val1, val2, val3, … ): Este é um objeto string que pode conter apenas um valor escolhido de uma lista de todos os valores possíveis. Em uma lista ENUM, você pode listar até 65535 valores. Se um valor que não está na lista for inserido, o valor inserido ficará em branco. Além disso, é essencial observar que os valores são classificados de acordo com a ordem em que o usuário os inseriu.
Tipos de dados de data e hora
Os tipos de dados de data e hora especificam os valores temporais como DateTime, timestamp, year, time e date. Cada um dos tipos temporais mencionados tem valores que incluem zero. Sempre que um valor inválido é inserido, o MySQL não pode representá-lo. Portanto, opta-se por um zero.
Abaixo está uma ilustração abrangente dos tipos de dados de data e hora suportados pelo MySQL:
DATA: O formato de data padrão é anos, meses e dias, respectivamente (AAAA-MM-DD), e o intervalo suportado é '1000-01-01' a '9999-12-31'.
DATETIME ( fsp ): Esta é a combinação de data e hora. O formato padrão, neste caso, é anos, meses, dias, horas, minutos e segundos respectivamente (AAAA-MM-DD hh:mm:ss)
Observação: Adicionar um DEFAULT e ON UPDATE em uma coluna é essencial para iniciar a inicialização automática e atualiza a hora e a data atuais.
TIMESTAMP ( fsp ): Desde a época do Unix, os valores de carimbo de data/hora são armazenados como o número de segundos, como ('1970-01-01 00;00;00' UTC). O formato padrão é anos, meses, dias, horas, minutos e segundos, respectivamente (AAAA-MM-DD hh:mm:ss), enquanto o intervalo suportado está entre '('1970-01-01 00;00;01' UTC para ('2038-01-09 03;14;07' UTC. O DEFAULT_CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP são vitais para inicializar e atualizar automaticamente a data e hora atuais.
HORA ( fsp ): O formato de hora padrão suportado é horas, minutos, segundos, respectivamente (hh:mm:ss), e o intervalo suportado é '-838:59:59' a '838:59:59'.
ANO: Um ano é representado em um formato de quatro dígitos — os valores permitidos no formato de quatro dígitos variam de 1902 a 2155 e 0000.
Observação: A versão mais recente do MySQL (8.0) não suporta o ano de formato de dois dígitos.
Tipos de dados numéricos
Os tipos de dados numéricos incluem todos os tipos de dados numéricos exatos, como inteiro, decimal e numérico. Ele também contém os tipos de dados numéricos aproximados, como float, double, double precision e real. Os tipos de dados numéricos armazenam valores de bits, pois suportam os tipos de dados BIT. Normalmente, os tipos de dados numéricos no MySQL são divididos em duas categorias:Tipos de dados assinados e Tipos de dados não assinados; no entanto, isso é uma exceção aos tipos de dados de bits.
Abaixo está uma ilustração detalhada contendo todos os tipos de dados numéricos suportados pelo MySQL e sua descrição:
BIT ( tamanho ): Este é um tipo de valor de bit em que o número de bits por valor é indicado em termos de tamanho . O parâmetro tamanho tem a capacidade de armazenar valores de 1 a 64 e seu valor padrão para tamanho é 1.
TINYINT ( tamanho ): Este é um número inteiro muito pequeno cujo intervalo com sinal varia de -128 a 127, enquanto seu intervalo sem sinal varia de 0 a 255. O parâmetro size denota a largura máxima a ser exibida, que é de cerca de 255.
BOOLEANO: É igual a um BOOL
BOOL: Em um BOOL, os valores diferentes de zero são considerados verdadeiros. Ao mesmo tempo, os valores Zero são considerados falsos.
INT ( tamanho ): Este é um número inteiro médio cujo intervalo com sinal varia de -2147483648 a 2147483647, enquanto o intervalo sem sinal varia de 0 a 4294967295. O parâmetro size especifica a largura máxima a ser exibida, que é cerca de 255.
MÉDIO ( tamanho ): Este também é um número inteiro médio cujo intervalo com sinal varia de -32768 a 32767, enquanto o intervalo sem sinal varia de 0 a 65535. O parâmetrotamanho especifica a largura máxima a ser exibida, que é cerca de 255.
PEQUENO ( tamanho ): Este é um pequeno número inteiro cujo intervalo com sinal está entre -32768 e 32767, enquanto o intervalo sem sinal está entre 0 e 16777215. O tamanho parâmetro, neste caso, é usado para especificar a largura máxima de exibição, cujo intervalo é de cerca de 255.
FLUTUAÇÃO ( tamanho, d ): É um número de ponto flutuante cujo número total de dígitos é denotado em tamanho. O d parâmetro ajuda a especificar o número de dígitos após o ponto decimal.
Observação: este parâmetro foi descontinuado no MySQL versão 8.0.17. Portanto, ele não será reproduzido em versões futuras do MySQL.
INTEIRO ( tamanho ): Isso é equivalente a um INT (tamanho ).
FLUTUAR( p ): É um número de ponto flutuante. O P O parâmetro é usado para determinar se um FLOAT ou um DOUBLE será usado em um tipo de dados resultante. Quando oP -valor varia de 0 a 24, os dados são conhecidos como FLOAT (). Considerando que quando o P -value varia de 25 a 53, então o tipo de dados muda para DOUBLE ().
DEC ( tamanho, d ): Isso é equivalente a um DECIMAL (tamanho, d )
DUPLO ( tamanho, d ): Isso denota um tamanho padrão número de ponto flutuante cujo número total de dígitos é dado em tamanho. O d parâmetro ajuda a especificar o número de dígitos após o ponto decimal.
DECIMAL ( tamanho, d ): É um número de ponto fixo exato cujo número total de dígitos é especificado em termos de tamanho . O d O parâmetro especifica os dígitos numéricos após o ponto decimal. O tamanho máximo número é 65, enquanto o d o número máximo é 30. Portanto, o valor padrão para d é 0, enquanto o valor padrão para tamanho é 10.
Observação: todos os tipos numéricos contêm opções extras; ZEROFILL e NÃO ASSINADO. Se a opção UNSIGNED for adicionada, o MySQL não permitirá os valores negativos na coluna. Por outro lado, se a opção ZEROFILL for adicionada, o MySQL adicionará automaticamente o atributo UNSIGNED à referida coluna.
Outros tipos de dados
Tipo de dados booleano
O menor tipo inteiro TINYINT (1), é usado para representar valores booleanos no MySQL, pois o MySQL não contém um tipo de dados BOOL ou BOOLEAN embutido. Portanto, ao trabalhar com BOOLs e BOOLEANs, você deve igualá-los ao TINYINT (1).
Tipo de dados espaciais
O MySQL fornece suporte para vários tipos de dados espaciais que possuem vários tipos de valores geográficos e geométricos, conforme indicado abaixo:
GEOMETRIA: Este é um agregado ou ponto que pode conter o valor espacial de qualquer tipo, desde que tenha uma localização.
POLÍGONO: Esta é uma superfície plana representada por uma geometria multifacetada. Pode ser definido por zero ou apenas um exterior e mais limites interiores.
MULTILINESTRING: Esta é uma geometria multicurva que contém uma coleção de valores LINESTRING.
MULTIPOLÍGONO: Este é um objeto multi-superfície representado por uma coleção de vários elementos poligonais, e é uma geometria bidimensional
PONTO: Este é um ponto ou um par que contém as coordenadas X e Y. Pode-se dizer que é um ponto em uma geometria que representa uma única localização.
COLEÇÃO DE GEOMETRIA: Esta é uma coleção de valores GEOMETRY
LINESTRING: Esta é uma curva que contém um ou mais valores de pontos. Nos casos em que uma string de linha contém apenas dois pontos, isso significa que ela representa uma linha.
MULTIPOINT: Esta é uma coleção de valores de PONTO em que o ponto não pode ser ordenado ou conectado de forma alguma.
Tipo de dados JSON
O MYSQL tem suportado o tipo de dados JSON nativo desde o início da versão 5.7.8, o que permitiu o armazenamento e gerenciamento de documentos JSON de forma muito rápida e eficaz. Além disso, o tipo de dados JSON nativo é responsável por fornecer o formato de armazenamento ideal e validação automática de documentos JSON.
Conclusão
Este artigo cobriu de forma abrangente todos os aspectos relacionados aos tipos de dados do MySQL que ajudarão você a entender quais tipos de dados devem ser usados e como eles devem ser usados. Acreditamos que o artigo também ajudará a melhorar seu conhecimento do MySQL.