Curso SQL Server — Edição Definitiva

Módulo 3 — Tipos Numéricos no SQL Server (INT, BIGINT, DECIMAL, FLOAT, BIT)

Aprenda os tipos de dados numéricos no SQL Server, como escolher corretamente para cada cenário, entender limitações, consumo de memória, impactos em performance e melhores práticas.

Objetivo do módulo

Compreender todos os tipos numéricos disponíveis no SQL Server, suas diferenças, limites e quando usá-los.

Escolher o tipo correto impacta diretamente em desempenho, armazenamento e precisão dos cálculos.

Resumo dos principais tipos numéricos

TipoTamanhoFaixa de valoresQuando usar
TINYINT1 byte0 a 255Contadores pequenos, flags numéricas
SMALLINT2 bytes-32.768 a 32.767Campos que não passarão de ~30k
INT4 bytes-2.147.483.648 a 2.147.483.647Padrão para chaves primárias
BIGINT8 bytes±9,22e18Grandes volumes, como logs ou IDs únicos
DECIMAL(p,s)5–17 bytesPrecisão definida por p,sFinanceiro, quando exatidão é crítica
FLOAT / REAL4 ou 8 bytesAproximadoMedições científicas e cálculos onde erro de arredondamento é tolerável
BIT1 bit0, 1 ou NULLStatus, flags booleanas

TINYINT

O que é / Para que serve: Números inteiros de 0 a 255, sem sinal (não negativos).

Sintaxe: col TINYINT

Como funciona: Armazena inteiros positivos pequenos; ótimo para contadores e indicadores compactos.

Implicações & boas práticas: • Use para valores sempre ≥0. • Economiza espaço comparado a INT.

CREATE TABLE FaixaEtaria (Codigo TINYINT, Descricao NVARCHAR(50));
INSERT INTO FaixaEtaria VALUES (1, 'Criança'), (2, 'Adulto');
SELECT * FROM FaixaEtaria;

INT

O que é / Para que serve: Números inteiros comuns, muito usado para chaves primárias.

Sintaxe: col INT

Como funciona: Armazena números inteiros de ±2 bilhões. Ideal para IDs sequenciais e contagens gerais.

Implicações & boas práticas: • Mais eficiente para índices que BIGINT. • É o padrão para PKs quando não se espera volume gigantesco.

CREATE TABLE Produtos (
    ProdutoID INT PRIMARY KEY,
    Nome NVARCHAR(50)
);
INSERT INTO Produtos VALUES (1,'Mouse'),(2,'Teclado');
SELECT * FROM Produtos;

BIGINT

O que é / Para que serve: Use quando espera números muito grandes, além do limite do INT.

Sintaxe: col BIGINT

Como funciona: Armazena até ±9,22e18. Mais pesado, mas necessário para grandes volumes.

Implicações & boas práticas: • Ideal para sistemas com bilhões de linhas. • Evite usar se não precisar, pois ocupa mais espaço.

CREATE TABLE Logs (
    LogID BIGINT PRIMARY KEY,
    Mensagem NVARCHAR(200)
);
INSERT INTO Logs VALUES (9000000000001,'Primeiro log');
SELECT * FROM Logs;

DECIMAL(p,s) / NUMERIC(p,s)

O que é / Para que serve: Representa números exatos com precisão controlada, muito usado em financeiro.

Sintaxe: col DECIMAL(10,2)

Como funciona: Parâmetros: p = precisão total; s = casas decimais. Ex.: (10,2) = 8 dígitos inteiros + 2 decimais.

Implicações & boas práticas: • Use para valores monetários. • FLOAT não é adequado para dinheiro pois arredonda.

CREATE TABLE Vendas (
    Valor DECIMAL(10,2)
);
INSERT INTO Vendas VALUES (99.90),(1000.00);
SELECT SUM(Valor) AS Total FROM Vendas;

FLOAT / REAL

O que é / Para que serve: Números de ponto flutuante, aproximados.

Sintaxe: col FLOAT / col REAL

Como funciona: FLOAT (8 bytes, 53 bits precisão), REAL (4 bytes, 24 bits precisão). Permitem valores muito grandes, mas podem perder exatidão.

Implicações & boas práticas: • Não use para financeiro. • Útil em cálculos científicos e médias com tolerância a pequenas variações.

CREATE TABLE Medicoes (
    Temperatura FLOAT
);
INSERT INTO Medicoes VALUES (36.6),(36.55);
SELECT AVG(Temperatura) FROM Medicoes;

BIT

O que é / Para que serve: Tipo lógico: armazena 0, 1 ou NULL.

Sintaxe: col BIT

Como funciona: Usado para status e flags booleanas. Usa apenas 1 bit por linha (compactado).

Implicações & boas práticas: • Ideal para colunas de controle: Ativo/Inativo, Pago/Não pago. • Pode armazenar NULL se não definido.

CREATE TABLE Usuarios (
    Nome NVARCHAR(50),
    Ativo BIT DEFAULT(1)
);
INSERT INTO Usuarios VALUES ('Ana',1),('Bruno',0);
SELECT * FROM Usuarios;

Referências oficiais & leituras recomendadas