Resumo : neste tutorial, você aprenderá sobre MySQL INT
ou 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, INT
significa 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 INTEGER
ou INT
e SMALLINT
. Além disso, o MySQL fornece TINYINT
MEDIUMINT
e BIGINT
como 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 INT
coluna pode ter um AUTO_INCREMENT
atributo.
Quando você insere um NULL
valor ou 0 na INT AUTO_INCREMENT
coluna, 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 NULL
ou zero na AUTO_INCREMENT
coluna, 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 items
com 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 INT
ou INTEGER
na CREATE TABLE
instrução acima porque eles são intercambiáveis. Sempre que você insere uma nova linha na items
tabela, o valor da item_id
coluna é aumentado em 1.
A seguir, a INSERT
instrução a seguir insere três linhas na items
tabela.
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 items
tabela usando a seguinte SELECT
instrução:
SELECT * FROM items;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Depois disso, insira uma nova linha cujo valor da item_id
coluna 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_id
coluna é 10, a sequência é redefinida para 11. Se você inserir uma nova linha, a AUTO_INCREMENT
coluna 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 items
tabela para ver o resultado.
SELECT * FROM items;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que a partir do MySQL 5.1, a AUTO_INCREMENT
coluna aceita apenas valores positivos e não permite valores negativos.
2) Usando o exemplo INT UNSIGNED
Primeiro, crie uma tabela chamada classes
que contenha a coluna total_member
com 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 classes
tabela:
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_member
coluna:
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 1
Linguagem 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 INT
tipo de dados. A largura de exibição é colocada entre parênteses após a INT
palavra-chave, por exemplo, INT(5)
especifica an INT
com 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_tests
tabela.
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 )
A v1
coluna 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ê 00
como os zeros à esquerda.
A coluna v3 tem uma largura de exibição de 5 com ZEROFILL
, enquanto seu valor é 9, portanto o MySQL preenche 0000
o início do número na saída.
Observe que se você usar ZEROFILL
um atributo para uma coluna inteira, o MySQL adicionará automaticamente um UNSIGNED
atributo à coluna.
Neste tutorial, você aprendeu como usar o INT
tipo de dados MySQL para projetar tabelas de banco de dados.