CodeGym /Cursos /SQL SELF /Fundamentos de criação de tabelas: CREATE TABLE

Fundamentos de criação de tabelas: CREATE TABLE

SQL SELF
Nível 17, Lição 0
Disponível

Nas primeiras aulas a gente viu o básico sobre bancos de dados relacionais e PostgreSQL, aprendeu a mexer com psql e pgAdmin, e também como criar e gerenciar bancos de dados. Agora chegou a hora de partir pro principal "bloco de construção" dos bancos relacionais – as tabelas. É nas tabelas que fica guardada toda a informação que depois a gente pode filtrar, ordenar ou juntar.

Pra criar tabelas no PostgreSQL, tu usa o comando CREATE TABLE. Esse comando define a estrutura da tabela: o nome dela, as colunas e os tipos de dados de cada uma.

Estrutura geral do comando

Olha só como é o básico da sintaxe:

CREATE TABLE tabela (
    coluna1 tipo_de_dado constraints,
    coluna2 tipo_de_dado constraints,
    ...
);

Vamos quebrar em partes:

  • tabela – nome da tabela (tipo students).
  • coluna1 – nome da coluna (tipo id, name).
  • tipo_de_dado – tipo de dado da coluna (tipo INTEGER, VARCHAR).
  • constraints – restrições pros dados (tipo NOT NULL, PRIMARY KEY).

Bora criar nossa primeira tabela.

Exemplo de criação de tabela

Cenário: na base de dados da escola, a gente precisa guardar info dos estudantes. Pra isso, vamos criar a tabela students com os campos:

  • id: identificador único do estudante (aumenta automático);
  • name: nome do estudante (até 100 caracteres);
  • age: idade do estudante (número inteiro positivo).
CREATE TABLE students (
    id SERIAL PRIMARY KEY,  -- ID único do estudante
    name VARCHAR(100),      -- nome
    age INTEGER             -- idade
);

O que tá rolando aqui:

  1. id SERIAL PRIMARY KEY: cria a coluna id, que gera números únicos automaticamente (1, 2, 3...) pra cada linha. Também é a chave primária da tabela.
  2. name VARCHAR(100): cria uma coluna de texto, onde VARCHAR(100) quer dizer que a string pode ter até 100 caracteres.
  3. age INTEGER: cria uma coluna numérica pra guardar a idade.

Agora, se tu rodar esse comando no psql ou pgAdmin, a tabela students vai ser criada.

Tipos de dados pras colunas

Quando tu cria uma tabela, é importante escolher o tipo de dado certo pra cada coluna. O PostgreSQL tem vários tipos, mas vamos começar pelos mais usados.

Tipo de dado Descrição Exemplo de valores
INTEGER Números inteiros. Bom pra idade, quantidade de algo, identificadores. 1, 42, 100
VARCHAR(n) String com até n caracteres. Ideal pra textos com tamanho limitado. 'Alice', 'Bob'
TEXT Strings sem limite. Usado pra textos longos (tipo descrição de produto). 'Texto bem longo...'
DATE Data sem hora. Usado pra datas de nascimento, eventos. 2023-10-12
BOOLEAN Tipo lógico: TRUE ou FALSE. Usado pra flags (tipo feito/não feito). TRUE, FALSE

Como escolher o tipo de dado certo

  • Se tu vai guardar números – usa INTEGER.
  • Pra strings com tamanho limitado – melhor usar VARCHAR(n).
  • Pra texto sem limite – usa TEXT.
  • Datas e horários guarda em DATE ou TIMESTAMP.

Exemplo: criando a tabela courses

Imagina que na nossa base também precisa guardar info dos cursos. Cada curso tem:

  • id: identificador único;
  • name: nome do curso (string até 100 caracteres);
  • description: descrição do curso (texto longo);
  • start_date: data de início do curso.

SQL:

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,      -- ID único do curso
    name VARCHAR(100),          -- nome do curso
    description TEXT,           -- descrição
    start_date DATE             -- data de início
);

Exercício prático

Agora é tua vez de criar uma tabela! Olha o desafio:

  1. Cria a tabela teachers com os campos:
    • id: identificador único.
    • name: nome do professor (string até 50 caracteres).
    • subject: matéria que ele/ela ensina (string até 50 caracteres).
    • hire_date: data de contratação.

Exemplo de código pra rodar:

CREATE TABLE teachers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    hire_date DATE
);

Depois de rodar, usa o comando \d teachers no psql pra conferir se a tabela foi criada.

Erros comuns ao criar tabelas

Quando tu começa a mexer com tabelas, pode rolar uns erros. Olha só os mais comuns:

Erro no nome da tabela ou coluna. No PostgreSQL os nomes não diferenciam maiúscula/minúscula, mas se tu usar aspas " nos nomes, tem que ficar ligado. Por exemplo, CREATE TABLE "MyTable" cria a tabela "MyTable", e mytable não vai ser reconhecida como o nome dela.

Tipo de dado errado. Se tu colocar um tipo de dado que não existe, o comando vai dar erro.

CREATE TABLE exemplo (
    coluna1 TIPO_ESTRANHO
);

Esse comando não vai funcionar porque TIPO_ESTRANHO não existe.

Esquecer o PRIMARY KEY. Se tu esquecer de botar a chave primária, a tabela até vai ser criada, mas vai ser mais difícil identificar as linhas depois.

2
Tarefa
SQL SELF, nível 17, lição 0
Bloqueado
Criação de uma tabela básica
Criação de uma tabela básica
2
Tarefa
SQL SELF, nível 17, lição 0
Bloqueado
Criação de uma tabela com diferentes tipos de dados
Criação de uma tabela com diferentes tipos de dados
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION