Olá amigos, aqui vai um rápido resumo de como criar uma tabela no PostgreSQL.

  • Mas primeiro, iremos acessar o servidor:
    psql -U [nome_do_usuario]
    
  • Depois iremos escolher em qual base iremos criar a tabela
    \c nova_base
    

Agora sim, podemos começar a criar nossa tabelas.

Mas antes, se você quiser ver como criamos uma base de dados, clique aqui

Sintaxe: Create table

Para criar uma nova tabela use o comando create table

CREATE TABLE [IF NOT EXISTS] nome_da_tabela (
   coluna1 datatype(length) column_contraint,
   coluna2 datatype(length) column_contraint,
   coluna3 datatype(length) column_contraint,
   table_constraints
);
  • Especificamos o nome da tabela depois de create table
  • Caso a tabela que queremos criar já existe na base, um erro será retornado. Para evitar que isso aconteça, podemos adicionar a opção if not exists.
  • Cada coluna da tabela deve ser separada por vírgula e a última linha não pode terminar com vírgula.
  • A definição de cada coluna deve seguir o padrão
    nome_da_coluna tipo_do_dado(comprimento_do_dado) restrição
    ...
    nome varchar(100) not null
    
  • Por fim, se especifíca as constraints da tabela (chave primaria, chave estrangeira, …)

Restrições (constraints)

  • NOT NULL – coluna não pode ser nula
  • UNIQUE – garante que os valores daquela coluna é único em todas as linhas da tabela
  • PRIMARY KEY – Uma chave primária define unicamente uma linha da tabela. Cada tabela pode ter apenas 1 chave primária, porém essa chave primária pode ser composta (formada por mais de uma coluna).
  • CHECK – garante que o valor de uma coluna deve satisfazer uma expressão booleana.
  • FOREIGN KEY – garante que os valores de uma coluna de uma tabela existem em outra coluna de outra tabela. Uma tabela pode ter mais de uma chave estrangeira.

Exemplos

Digamos que devemos ter uma tabela para guardar os empregados de uma empresa:

CREATE TABLE empregados (
    matricula serial primary key,
    nome varchar(200) not null,
    cpf varchar(11) unique not null,
    email varchar(255) unique not null,
    birthday date
);

Agora queremos guardar os dependentes dos empregados:

CREATE TABLE dependentes (
    empregado_matricula int not null
    nome varchar(200) not null,
    foreign key (empregado_matricula)
      references empregado(matricula)
);

Então, criamos uma tabela dependentes e informamos que sua chave estrangeira apontava para a tabela de empregados na coluna matricula