SMALLINT / SMALLINT UNSIGNED
💾 2 Bytes (16 bits)Inteiro de 2 Bytes para faixas intermediárias (0 a 65.535 sem sinal).
Ocupa metade do espaço de um INT comum (2 bytes). É ideal para quantidades moderadas que passam de 255 mas nunca chegarão a 65 mil, como ano de fabricação de veículos, número de páginas de um livro, portas de rede TCP/IP (1 a 65535) ou ordem de exibição de itens em menus e galerias.
✅ Quando Usar (Casos Ideais)
- • Número de páginas de um livro, duração de um filme em minutos.
- • Ano histórico ou ano modelo de veículo (ex: 1850 a 2150).
- • Porta de servidor de rede (0 a 65535).
- • Quantidade de itens por pedido no carrinho de compras.
🚫 Quando NÃO Usar (Armadilhas)
- • Estoque de produtos em atacado ou visualizações de página que possam ultrapassar 65.535.
📐 Como Configurar no DrawDB Abrir DrawDB ↗
SMALLINT UNSIGNED
SMALLINT
INTEGER
📋 Exemplos Reais de Colunas com SMALLINT:
CREATE TABLE livros (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(180) NOT NULL,
ano_publicacao SMALLINT UNSIGNED NOT NULL,
numero_paginas SMALLINT UNSIGNED NOT NULL
);
<?php
declare(strict_types=1);
$paginas = 384;
$ano = 2026;
if ($paginas < 1 || $paginas > 65535) {
throw new RangeException('Número de páginas fora do limite de SMALLINT.');
}
$stmt = $pdo->prepare('
INSERT INTO livros (titulo, ano_publicacao, numero_paginas)
VALUES (:titulo, :ano, :paginas)
');
$stmt->bindValue(':titulo', 'Arquitetura de Bancos de Dados em PHP', PDO::PARAM_STR);
$stmt->bindValue(':ano', $ano, PDO::PARAM_INT);
$stmt->bindValue(':paginas', $paginas, PDO::PARAM_INT);
$stmt->execute();