Pular para o conteudo

Resumo TI Banco de Dados: Tipos de Dados SQL Mais Comuns

O resumo anterior classificou os comandos SQL em cinco categorias, entre elas a DDL — a categoria que define a estrutura das tabelas. Mas definir uma coluna exige mais do que dar um nome a ela: é preciso dizer que tipo de valor ela vai guardar. Antes de chegar ao CREATE TABLE propriamente dito, este resumo cobre os tipos de dados que é preciso declarar para cada coluna.

Neste resumo, você vai conhecer os tipos numéricos, de texto, de data/hora e outros tipos comuns, entender a diferença crítica entre valores exatos e aproximados, e ver como a escolha do tipo certo evita erros clássicos de armazenamento e comparação.

📲 Canal Oficial do Dicionário do Concurseiro no WhatsApp

Receba resumos, questões comentadas e novidades diretamente no seu celular!

👉 Acessar Canal no WhatsApp

💡 Conteúdo exclusivo para concurseiros. Totalmente gratuito!

💡 Por que o tipo de dado importa

Declarar o tipo certo não é burocracia: ele determina quanto espaço a coluna ocupa, que valores são aceitos (validação automática pelo SGBD), como comparações e ordenações se comportam, e — no caso de valores numéricos — se cálculos são exatos ou sujeitos a erro de arredondamento. Escolher o tipo errado é uma fonte comum de bugs sutis, principalmente com dinheiro e datas.

🔢 Tipos numéricos: exatos x aproximados

Para números inteiros: SMALLINT, INTEGER (ou INT) e BIGINT, diferindo na faixa de valores suportada. Para números com casas decimais, a distinção mais cobrada em prova é entre dois grupos: DECIMAL(p,s) ou NUMERIC(p,s) guardam o valor de forma exata (p = precisão total de dígitos, s = dígitos após a vírgula) — são o tipo correto para valores monetários. Já FLOAT, REAL e DOUBLE PRECISION são de ponto flutuante, armazenam valores de forma aproximada e estão sujeitos a erro de arredondamento — nunca devem ser usados para representar dinheiro.

🔤 Tipos de texto: CHAR x VARCHAR x TEXT

CHAR(n) é de tamanho fixo: sempre ocupa n caracteres, completando os valores mais curtos com espaços à direita. VARCHAR(n) é de tamanho variável, ocupando só o espaço necessário até o limite n, sem preenchimento. TEXT (ou CLOB, em alguns SGBDs) é usado para textos longos, sem um limite prático definido diretamente na declaração da coluna. Como regra prática: CHAR serve para valores de tamanho realmente fixo (ex.: sigla de UF com 2 letras); VARCHAR é a escolha padrão para a maioria dos textos.

📅 Tipos de data e hora

DATE guarda só a data (ano, mês, dia); TIME guarda só a hora; TIMESTAMP (nome mais comum em PostgreSQL e Oracle) ou DATETIME (nome mais comum em SQL Server) guardam data e hora juntas. No MySQL, porém, os dois tipos coexistem lado a lado com comportamentos diferentes: TIMESTAMP é armazenado internamente em UTC e convertido conforme o fuso horário da sessão na exibição, enquanto DATETIME não sofre essa conversão.

🧩 Booleano e outros tipos comuns

BOOLEAN guarda verdadeiro/falso, mas nem todo SGBD tem esse tipo nativamente: o MySQL, por exemplo, emula com TINYINT(1) (0 ou 1); o SQL Server usa BIT. Outros tipos comuns em SGBDs modernos incluem JSON (para dados semiestruturados dentro de uma coluna relacional) e UUID (identificador único universal, alternativa a chaves numéricas sequenciais, à custa de maior fragmentação de índice em tabelas muito grandes). Nenhum desses três é parte do núcleo mínimo do padrão SQL clássico — cada SGBD implementa (ou não) à sua maneira.

⚠️ Pegadinhas comuns

  • Nunca use tipo de ponto flutuante para dinheiro — FLOAT/REAL/DOUBLE são aproximados por natureza; a banca costuma testar esse erro clássico de projeto apresentando um cenário de valores monetários com tipo aproximado;
  • CHAR(n) sempre ocupa n caracteres armazenados (preenchidos com espaço), mesmo que o valor inserido seja mais curto — diferente de VARCHAR(n), que ocupa só o necessário;
  • Nomes de tipos variam entre SGBDs — DATETIME existe no MySQL e SQL Server, mas não é palavra-chave padrão em todos; sempre desconfiar de generalizações do tipo “todo SGBD tem o tipo X”;
  • BOOLEAN nativo não é universal — reconhecer que MySQL (TINYINT(1)) e SQL Server (BIT) emulam booleano de formas diferentes é um detalhe de dialeto cobrado com frequência.

🎯 Dica Final para a Prova

Diante de um cenário com valores monetários, a resposta certa quase sempre envolve DECIMAL/NUMERIC, nunca FLOAT/REAL/DOUBLE. Diante de uma pergunta sobre CHAR x VARCHAR, lembre que a diferença central é preenchimento (tamanho fixo) x ocupação sob demanda (tamanho variável).

✓ Com os tipos de dados definidos, já é possível montar a estrutura completa de uma coluna. O próximo resumo aplica isso na prática: os comandos CREATE DATABASE e CREATE SCHEMA, o primeiro passo de DDL para criar um banco de dados do zero.


📍Gostou do conteúdo? Deixe um comentário, compartilhe e continue acompanhando o Dicionário do Concurseiro para mais Resumos de TI – Banco de Dados. Aqui você encontra explicações claras, atualizadas e com foco total no que cai em prova!

👉 Leia também no Dicionário do Concurseiro: Resumo TI Banco de Dados: Comando CREATE DATABASE e CREATE SCHEMA


📘 Escolher o tipo certo é a primeira decisão de projeto de uma coluna — e a diferença entre exato e aproximado nunca deveria envolver dinheiro. Continue estudando!

Gostou deste conteúdo?

Favoritar

Comentários

Seja o primeiro a comentar.