2

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

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.)
Aula Anterior: Introdução Próxima Aula: Inserindo Dados