2.3. Criação de tabelas #

Você pode criar uma tabela especificando o seu nome juntamente com os nomes das colunas e seus tipos de dados:

CREATE TABLE clima (
    cidade      varchar(80),  -- nome da cidade
    temp_min    int,          -- temperatura mínima em °C
    temp_max    int,          -- temperatura máxima em °C
    prcp        real,         -- precipitação em mm
    data        date          -- data
);

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. Isso significa que o comando pode ser digitado com um alinhamento diferente do mostrado acima, ou mesmo tudo em uma única linha. Dois hifens (--)) 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 as letras maiúsculas e minúsculas (o que não foi feito acima).

No comando, varchar(80) especifica um tipo de dados que pode armazenar cadeias de caracteres arbitrárias com comprimento de 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 — você decide).

O PostgreSQL aceita os tipos de dados 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 dados definidos pelo usuário. Como consequência, os nomes dos tipos de dados não são palavras-chave na sintaxe, exceto onde for requerido para aceitar 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),  -- nome da cidade
    localizacao  point         -- coordenadas x, y (Longitude, Latitude)
);

O tipo de dados point é um exemplo de tipo de dados específico do PostgreSQL.

Para terminar, deve-se mencionar que quando a tabela não é mais necessária, ou se deseja recriá-la de forma diferente, é possível removê-la por meio do comando:

DROP TABLE nome_da_tabela;