Tipo de dados MySQL INT

Resumo : neste tutorial, você aprenderá sobre MySQL INTou tipo de dados inteiro e como usá-lo no design de sua tabela de banco de dados. Além disso, mostraremos como usar a largura de exibição e os atributos ZEROFILL de uma coluna inteira.

Introdução ao tipo de dados MySQL INT

No MySQL, INTsignifica o número inteiro que é um número inteiro. Um número inteiro pode ser escrito sem um componente fracionário, por exemplo, 1, 100, 4, -10, e não pode ser 1,2, 5/3, etc. Um número inteiro pode ser zero, positivo e negativo.

MySQL suporta todos os tipos inteiros SQL padrão INTEGERou INTe SMALLINT. Além disso, o MySQL fornece  TINYINT MEDIUMINTe BIGINTcomo extensões para o padrão SQL.

INT O tipo de dados MySQL pode ser assinado e não assinado. A tabela a seguir ilustra as características de cada tipo inteiro, incluindo armazenamento em bytes, valor mínimo e valor máximo.

Tipo Armazenar Valor Mínimo Valor máximo
(Bytes) (Assinado/Não assinado) (Assinado/Não assinado)
TINYINT 1 -128 127
0 255
PEQUENO 2 -32768 32767
0 65535
MÉDIO 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
GRANDE 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

Exemplos de tipos de dados MySQL INT

Vejamos alguns exemplos de uso do tipo de dados inteiro.

1) Usando INT para um exemplo de coluna

Como o tipo inteiro representa números exatos, geralmente você o usa como chave primária de uma tabela. Além disso, a INTcoluna pode ter um  AUTO_INCREMENT atributo.

Quando você  insere um NULLvalor ou 0 na INT AUTO_INCREMENTcoluna, o valor da coluna é definido como o próximo valor da sequência . Observe que o valor da sequência começa com 1.

Quando você insere um valor diferente NULLou zero na AUTO_INCREMENTcoluna, a coluna aceita o valor. Além disso, a sequência é redefinida para o próximo valor do valor inserido.

Primeiro, crie uma nova tabela nomeada itemscom uma coluna inteira como chave primária :

CREATE TABLE items (
    item_id INT AUTO_INCREMENT PRIMARY KEY,
    item_text VARCHAR(255)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Você pode usar INTou INTEGERna CREATE TABLE instrução acima porque eles são intercambiáveis. Sempre que você insere uma nova linha na itemstabela, o valor da item_idcoluna é aumentado em 1.

A seguir, a INSERT instrução a seguir insere três linhas na itemstabela.

INSERT INTO 
    items(item_text)
VALUES
    ('laptop'), 
    ('mouse'),
    ('headphone');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em seguida, consulte os dados da itemstabela usando a seguinte SELECT instrução:

SELECT * FROM items;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
MySQL INT AUTO_INCREMENT

Depois disso, insira uma nova linha cujo valor da item_idcoluna seja especificado explicitamente.

INSERT INTO items(item_id,item_text)
VALUES(10,'Server');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Como o valor atual da item_idcoluna é 10, a sequência é redefinida para 11. Se você inserir uma nova linha, a AUTO_INCREMENTcoluna usará 11 como próximo valor.

INSERT INTO items(item_text)
VALUES('Router');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, consulte novamente os dados da itemstabela para ver o resultado.

SELECT * FROM items;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo MySQL INT AUTO_INCREMENT

Observe que a partir do MySQL 5.1, a AUTO_INCREMENTcoluna aceita apenas valores positivos e não permite valores negativos.

2) Usando o exemplo INT UNSIGNED

Primeiro, crie uma tabela chamada classesque contenha a coluna total_membercom o tipo de dados inteiro não assinado:

CREATE TABLE classes (
    class_id INT AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    total_member INT UNSIGNED,
    PRIMARY KEY (class_id)
);
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira uma nova linha na classestabela:

INSERT INTO classes(name, total_member)
VALUES('Weekend',100);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Funcionou como esperado.

Terceiro, tente inserir um valor negativo na total_membercoluna:

INSERT INTO classes(name, total_member)
VALUES('Fly',-50);
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

MySQL emitiu o seguinte erro:

Error Code: 1264. Out of range value for column 'total_member' at row 1Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

MySQL INT com o atributo de largura de exibição

MySQL fornece uma extensão que permite especificar a largura de exibição junto com o INTtipo de dados. A largura de exibição é colocada entre parênteses após a INTpalavra-chave, por exemplo, INT(5)especifica an INTcom largura de exibição de cinco dígitos.

É importante observar que o atributo display width não controla os intervalos de valores que a coluna pode armazenar. O atributo de largura de exibição normalmente é usado pelos aplicativos para formatar os valores inteiros. O MySQL inclui o atributo display width como metadados do conjunto de resultados retornado.

MySQL INT com o atributo ZEROFILL

Além do atributo de largura de exibição , o MySQL fornece um atributo não padrão ZEROFILL. Neste caso, o MySQL substitui os espaços por zero. Considere o seguinte exemplo.

Primeiro, crie uma tabela chamada zerofill_tests:

CREATE TABLE zerofill_tests(
    id INT AUTO_INCREMENT PRIMARY KEY,
    v1 INT(2) ZEROFILL,
    v2 INT(3) ZEROFILL,
    v3 INT(5) ZEROFILL
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira uma nova linha na zerofill_teststabela.

INSERT INTO zerofill_tests(v1,v2,v3)
VALUES(1,6,9);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, consulte os dados da zerofill_tests tabela.

SELECT 
    v1, v2, v3
FROM
    zerofill_tests;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

MySQL INT com ZEROFILL
A v1coluna tem uma largura de exibição de 2 incluindo ZEROFILL. Seu valor é 1, portanto, você vê 01 na saída. MySQL substitui o primeiro espaço por 0.

A coluna v2 possui uma exibição com 3 incluindo  ZEROFILL. Seu valor é 6, portanto, você vê 00como os zeros à esquerda.

A coluna v3 tem uma largura de exibição de 5 com ZEROFILL, enquanto seu valor é 9, portanto o MySQL preenche 0000o início do número na saída.

Observe que se você usar ZEROFILLum atributo para uma coluna inteira, o MySQL adicionará automaticamente um  UNSIGNEDatributo à coluna.

Neste tutorial, você aprendeu como usar o INTtipo de dados MySQL para projetar tabelas de banco de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *