Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Modulo 1: Fundamentos

Tipos de Dados

INT, VARCHAR, BOOLEAN e outros tipos essenciais

Por que tipos de dados importam?

Quando voce cria uma tabela, precisa dizer ao banco qual tipo de dado cada coluna vai armazenar. Isso serve para:

  • Economizar espaco: um INT ocupa menos espaco que um TEXT
  • Validar dados: o banco rejeita texto numa coluna INT
  • Melhorar performance: buscas em colunas tipadas corretamente sao mais rapidas

Tipos Numericos

INT -- numeros inteiros

Para qualquer numero sem casa decimal: idade, quantidade, ano.

CREATE TABLE produtos (
id INT,
quantidade_estoque INT,
ano_lancamento INT
);

Variacoes de tamanho:

TipoFaixaBytes
TINYINT-128 a 1271
SMALLINT-32.768 a 32.7672
INT-2 bilhoes a 2 bilhoes4
BIGINT-9 quintilhoes a 9 quintilhoes8

DECIMAL -- numeros com casas decimais

Para valores que precisam de precisao exata, como dinheiro.

CREATE TABLE produtos (
preco DECIMAL(10, 2)
-- 10 digitos no total, 2 depois da virgula
-- Ex: 12345678.99
);

A sintaxe e DECIMAL(precisao, escala):

  • Precisao: total de digitos
  • Escala: digitos depois do ponto decimal
DECIMAL(5, 2)   -- aceita de -999.99 a 999.99
DECIMAL(10, 2) -- aceita de -99999999.99 a 99999999.99

Tipos de Texto

VARCHAR -- texto com limite

Para textos curtos e de tamanho previsivel: nome, email, telefone.

CREATE TABLE alunos (
nome VARCHAR(100), -- ate 100 caracteres
email VARCHAR(255), -- ate 255 caracteres
telefone VARCHAR(20) -- ate 20 caracteres
);

O numero entre parenteses e o maximo de caracteres. Se o aluno tiver nome com 10 letras, o banco so armazena 10 (nao desperidca espaco).

TEXT -- texto longo

Para textos grandes sem limite pratico: descricoes, biografias, conteudo de artigos.

CREATE TABLE postagens (
titulo VARCHAR(200),
conteudo TEXT -- texto longo, sem limite pratico
);
TipoLimiteQuando usar
VARCHAR(n)ate 65.535 caracteresNomes, emails, telefones
TEXT~65 mil caracteresDescricoes, comentarios
MEDIUMTEXT~16 milhoes de caracteresArtigos, conteudo grande
LONGTEXT~4 bilhoes de caracteresRaramente necessario

BOOLEAN -- verdadeiro ou falso

Para valores binarios: ativo/inativo, sim/nao, publicado/rascunho.

CREATE TABLE usuarios (
nome VARCHAR(100),
ativo BOOLEAN -- TRUE ou FALSE
);

INSERT INTO usuarios (nome, ativo) VALUES ('Ana', TRUE);
INSERT INTO usuarios (nome, ativo) VALUES ('Carlos', FALSE);

SELECT * FROM usuarios WHERE ativo = TRUE;
-- → Retorna apenas Ana

Tipos de Data e Hora

DATE -- apenas data

CREATE TABLE eventos (
data_evento DATE -- formato: 'YYYY-MM-DD'
);

INSERT INTO eventos (data_evento) VALUES ('2024-03-15');

TIMESTAMP -- data e hora

CREATE TABLE logs (
acao VARCHAR(100),
criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-- Preenche automaticamente com a data/hora atual
);

INSERT INTO logs (acao) VALUES ('Usuario logou');
-- criado_em → '2024-03-15 14:30:00' (automatico)
TipoFormatoExemplo
DATEYYYY-MM-DD2024-03-15
TIMEHH:MM:SS14:30:00
DATETIMEYYYY-MM-DD HH:MM:SS2024-03-15 14:30:00
TIMESTAMPYYYY-MM-DD HH:MM:SS2024-03-15 14:30:00
YEARYYYY2024

Tabela Resumo -- Quando Usar Cada Tipo

DadoTipo RecomendadoExemplo
ID / contadorINT (ou BIGINT)1, 2, 3...
Nome / emailVARCHAR(255)"Ana Silva"
Descricao longaTEXTBiografia do aluno
Preco / salarioDECIMAL(10,2)1499.90
Idade / quantidadeINT25
Ativo / publicadoBOOLEANTRUE / FALSE
Data de nascimentoDATE2000-05-20
Data de criacaoTIMESTAMP2024-03-15 14:30:00

Exercicios

  1. Para cada campo abaixo, escolha o tipo de dado mais adequado e justifique:

    • CPF
    • Salario mensal
    • Numero de filhos
    • Biografia do funcionario
    • Data de admissao
    • Status ativo/inativo
  2. Crie uma tabela funcionarios com pelo menos 6 colunas usando tipos diferentes (INT, VARCHAR, DECIMAL, BOOLEAN, DATE, TIMESTAMP).

  3. Pesquise: qual a diferenca entre CHAR(10) e VARCHAR(10)?

  4. Por que nao devemos usar FLOAT para armazenar valores monetarios? Faca um teste: calcule 0.1 + 0.2 em alguma linguagem de programacao e veja o resultado.

Referencias

Testa o que você leu

5 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 5
Qual tipo é mais adequado para a idade de uma pessoa?