Pode-se criar uma tabela especificando o seu nome juntamente com os nomes das colunas e seus tipos de dado:
CREATE TABLE clima ( cidade varchar(80), temp_min int, -- temperatura mínima temp_max int, -- temperatura máxima prcp real, -- precipitação data date );
Este comando pode ser digitado no psql com quebras de linha. O psql reconhece que o comando só termina quando é encontrado o ponto-e-vírgula.
Espaços em branco (ou seja, espaços, tabulações e novas linhas) podem ser utilizados livremente nos comandos SQL. Isto significa que o comando pode ser digitado com um alinhamento diferente do mostrado acima, ou mesmo tudo em uma única linha. Dois hífens ("--") iniciam um comentário; tudo que vem depois é ignorado até o final da linha. A linguagem SQL não diferencia letras maiúsculas e minúsculas nas palavras chave e nos identificadores, a não ser que os identificadores sejam delimitados por aspas (") para preservar letras maiúsculas e minúsculas, o que não foi feito acima.
No comando, varchar(80) especifica um tipo de dado que pode armazenar cadeias de caracteres arbitrárias com comprimento até 80 caracteres; int é o tipo inteiro normal; real é o tipo para armazenar números de ponto flutuante de precisão simples; date é o tipo para armazenar data e hora (a coluna do tipo date pode se chamar date, o que tanto pode ser conveniente quanto pode causar confusão).
O PostgreSQL suporta os tipos de dado SQL padrão int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp e interval, assim como outros tipos de utilidade geral, e um conjunto diversificado de tipos geométricos. O PostgreSQL pode ser personalizado com um número arbitrário de tipos de dado definidos pelo usuário. Como conseqüência, sintaticamente os nomes dos tipos não são palavras chave, exceto onde for requerido para suportar casos especiais do padrão SQL.
No segundo exemplo são armazenadas cidades e suas localizações geográficas associadas:
CREATE TABLE cidades ( nome varchar(80), localizacao point );
O tipo point é um exemplo de tipo de dado específico do PostgreSQL.
Para terminar deve ser mencionado que, quando a tabela não é mais necessária, ou se deseja recriá-la de uma forma diferente, é possível removê-la por meio do comando:
DROP TABLE nome_da_tabela;