Criando Tabelas e Tipos de Dados
Fundamentos • 45 minutos • Iniciante
Aprenda a criar suas primeiras tabelas no banco de dados, entendendo os diferentes tipos de dados e como estruturar informações de forma eficiente.
Objetivos de Aprendizagem
- Entender a estrutura de uma tabela (linhas e colunas)
- Conhecer os principais tipos de dados no PostgreSQL
- Criar tabelas usando o comando CREATE TABLE
- Aplicar restrições e validações nos dados
Estrutura de uma Tabela
Uma tabela é como uma planilha do Excel: tem colunas (campos) e linhas (registros). Cada coluna tem um nome e um tipo específico de dado que pode armazenar.
Exemplo Visual:
Imagine uma tabela de "Produtos" em uma loja:
| id | nome | preco | categoria | em_estoque |
|---|---|---|---|---|
| 1 | Notebook Dell | 2500.00 | Eletrônicos | true |
| 2 | Mouse Wireless | 45.90 | Acessórios | false |
Colunas (Campos)
Definem que tipo de informação será armazenada: id, nome, preço, etc.
Linhas (Registros)
Cada linha representa um item específico: um produto, um cliente, etc.
Tipos de Dados no PostgreSQL
Cada coluna deve ter um tipo de dado que define que tipo de informação pode ser armazenada. Escolher o tipo correto é importante para economia de espaço e performance.
Tipos Numéricos
INTEGER
Números inteiros: 1, 100, -50
DECIMAL(10,2)
Números com casas decimais: 19.99, 1500.50
SERIAL
Números que aumentam automaticamente: 1, 2, 3...
Tipos de Texto
VARCHAR(50)
Texto com limite: nomes, títulos
TEXT
Texto longo: descrições, comentários
CHAR(2)
Texto fixo: códigos, siglas (SP, RJ)
Data e Hora
DATE
Apenas data: 2024-03-15
TIMESTAMP
Data e hora: 2024-03-15 14:30:00
Outros Tipos
BOOLEAN
Verdadeiro/Falso: true, false
JSON
Dados estruturados: {"nome": "João"}
Comando CREATE TABLE
O comando CREATE TABLE é usado para criar uma nova tabela. Vamos ver a sintaxe básica:
CREATE TABLE nome_da_tabela (
coluna1 TIPO_DADO RESTRIÇÕES,
coluna2 TIPO_DADO RESTRIÇÕES,
coluna3 TIPO_DADO RESTRIÇÕES
);
Exemplo Prático: Tabela de Produtos
CREATE TABLE produtos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
preco DECIMAL(10,2) NOT NULL,
categoria VARCHAR(50),
em_estoque BOOLEAN DEFAULT true,
data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Explicação linha por linha:
- id SERIAL PRIMARY KEY: Número único que aumenta automaticamente
- nome VARCHAR(100) NOT NULL: Texto até 100 caracteres, obrigatório
- preco DECIMAL(10,2) NOT NULL: Número com 2 casas decimais, obrigatório
- categoria VARCHAR(50): Texto até 50 caracteres, opcional
- em_estoque BOOLEAN DEFAULT true: Verdadeiro/falso, padrão é verdadeiro
- data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP: Data/hora atual automaticamente
Restrições e Validações
As restrições (constraints) garantem que os dados inseridos na tabela sigam certas regras, mantendo a qualidade e integridade dos dados.
NOT NULL
Campo obrigatório, não pode ficar vazio
nome VARCHAR(100) NOT NULL
PRIMARY KEY
Identifica unicamente cada registro
id SERIAL PRIMARY KEY
UNIQUE
Valor deve ser único na tabela
email VARCHAR(100) UNIQUE
DEFAULT
Valor padrão se nenhum for fornecido
ativo BOOLEAN DEFAULT true
CHECK
Validação customizada
idade INTEGER CHECK (idade >= 0)
FOREIGN KEY
Referência a outra tabela (veremos na aula 5)
categoria_id INTEGER REFERENCES categorias(id)
Exercício Prático
Vamos criar uma tabela de clientes!
Complete o código SQL abaixo para criar uma tabela que armazene informações de clientes:
CREATE TABLE clientes (
id _______ PRIMARY KEY,
nome _______(100) NOT NULL,
email _______(150) UNIQUE NOT NULL,
telefone _______(20),
data_nascimento _______,
ativo _______ DEFAULT true
);
Resumo da Aula
- Tabelas são estruturas com colunas (campos) e linhas (registros)
- Cada coluna tem um tipo de dado específico (INTEGER, VARCHAR, DATE, etc.)
- CREATE TABLE é usado para criar novas tabelas
- Restrições garantem a qualidade dos dados (NOT NULL, PRIMARY KEY, etc.)