MySql Bigint Number Ranges

MySql Bigint Number Ranges
Este artigo se concentra no tipo de dados do MySQL Bigint e analisa como podemos usá -lo para armazenar valores inteiros. Também aprenderemos seu alcance, tamanho de armazenamento e vários atributos, incluindo assinados, não assinados e preenchimento zero.

Mysql bigint

O bigint é um valor inteiro de byte B ou 64 bits e é muito útil para armazenar grandes valores inteiros.

O MySQL Bigint, como qualquer outro tipo de dados inteiro MySQL, pode ser assinado ou não assinado. Um tipo de dados assinado indica que a coluna pode armazenar valores inteiros positivos e negativos. Este é o tipo padrão para a maioria dos tipos inteiros em MySQL. Portanto, a menos que explicitamente especificado, qualquer coluna do tipo inteiro pode armazenar números inteiros positivos e negativos.

Por outro lado, o tipo de dados não assinado indica que a coluna só pode armazenar valores inteiros positivos.

O intervalo para o tipo MySQL Bigint assinado está entre -9223372036854775808 e 9223372036854775807

Para o tipo bigint não assinado, o valor varia de 0 a 18446744073709551615.

O outro atributo do tipo bigint é o zerofil. Com este atributo especificado em uma coluna, a coluna é automaticamente definida como não assinada.

O atributo zerofill também preenche os espaços com zeros.

Exemplos

Vejamos alguns exemplos para ilustrar como usar o tipo bigint.

Criar banco de dados, se não existir inteiros;
Use números inteiros;

Em seguida, vamos criar uma tabela e preencher -a com várias colunas Bigint, como mostrado na consulta abaixo:

Crie exemplos de tabela (X BIGINT NÃO NULL AUTO_INCREMMENT Primária, Y Bigint Unsigned, Z Bigint ZeroFill);

Exemplo 1
Vamos primeiro tentar adicionar todos os valores positivos à tabela:

Inserir em exemplos (x, y, z) valores (1,2,3);

Na consulta de exemplo acima, os valores são aceitáveis ​​porque estão na gama de tipos de bigint assinados, não assinados e zerofilos.

Selecione * nos exemplos;
+---+------+----------------------+
| x | y | z |
+---+------+----------------------+
| 1 | 2 | 0000000000000000000003 |
+---+------+----------------------+
1 linha in definir (0.01 seg)

Exemplo 2
No próximo caso, vamos tentar adicionar todos os valores negativos. Um exemplo de consulta está abaixo:

Inserir em exemplos (x, y, z) valores (-1, -2, -3);
Erro 1264 (22003): Valor fora do alcance para a coluna 'y' na linha 1

Nesse caso, a consulta falha à medida que a coluna Y não é assinada. Portanto, atribuir um valor negativo à coluna está fora do intervalo da coluna.

Exemplo 3
Podemos observar um caso semelhante ao acima para a terceira coluna. O atributo ZeroFill torna a coluna não assinada, fazendo com que agregar um valor negativo está fora de alcance. Um exemplo é como:

Inserir em exemplos (x, y, z) valores (-1,2, -3);
Erro 1264 (22003): Valor fora do alcance para a coluna 'Z' na linha 1

Exemplo 4
Vamos agora tentar adicionar os valores máximos para cada tipo. Um exemplo de consulta é:

Inserir em exemplos (x, y, z) valores (-9223372036854775808, 9223372036854775808, 9223372036854775808);

No exemplo acima, como todos os valores estão no intervalo, a consulta é executada com sucesso.

Considere a consulta abaixo:

Inserir em exemplos (x, y, z) valores (9223372036854775807, 9223372036854775808, 9223372036854775808);

Você notará que todos os valores estão nos valores máximos. Como a coluna X está definida como auto_increntle, agregar um valor a ela falhará.

Inserir em exemplos (y, z) valores (9223372036854775808, 9223372036854775808);
Erro 1062 (23000): entrada duplicada '9223372036854775807' para os principais exemplos '.Primário '

No entanto, se o modo rigoroso estiver desativado no MySQL, você poderá inserir valores fora do alcance.

Selecione * nos exemplos;

Conclusão

Neste tutorial, discutimos o tipo MySQL Binint e os intervalos para seus vários atributos.