No Post­greSQL, o comando CREATE TABLE é utilizado para criar novas tabelas dentro de uma base de dados. Ao utilizar este comando, definem-se também di­re­ta­mente várias es­pe­ci­fi­ca­ções para a tabela e as suas colunas in­di­vi­du­ais.

O que é o Post­greSQL CREATE TABLE?

O comando CREATE TABLE é utilizado no Post­greSQL para criar uma nova tabela numa base de dados existente. Ao fazê-lo, define-se sempre um nome único e exclusivo na base de dados para a tabela e as suas res­pe­ti­vas colunas. Cada coluna recebe também um nome e o tipo de dados que deve conter no final. É igual­mente possível definir res­tri­ções tanto para colunas es­pe­cí­fi­cas como para todas elas durante a criação.

Sintaxe e fun­ci­o­na­li­dade do CREATE TABLE

A sintaxe básica do Post­greSQL CREATE TABLE é a seguinte:

CREATE TABLE nombre_de_la_tabla(
columna1 tipo_de_dato PRIMARY KEY, 
columna2 tipo_de_dato, 
columna3 tipo_de_dato, 
... 
);
post­gresql

Primeiro, utiliza-se o comando principal CREATE TABLE para instruir o Post­greSQL a criar uma nova tabela. Em seguida, atribui-se-lhe um nome único. Os nomes das colunas in­di­vi­du­ais e a definição dos tipos de dados per­mi­ti­dos aparecem a seguir, entre pa­rên­te­ses.

Se quiseres incluir res­tri­ções (cons­traints), a sintaxe muda e ficaria assim:

CREATE TABLE nombre_de_la_tabla( 
columna1 tipo_de_dato PRIMARY KEY restricción, 
columna2 tipo_de_dato restricción, 
columna3 tipo_de_dato restricción, 
... 
);
post­gresql

Além do PRIMARY KEY, o Post­greSQL suporta os seguintes tipos de res­tri­ções:

  • NOT NULL: desta forma, garante-se que a coluna em questão não contenha nenhum valor NULL.
  • UNIQUE: pode definir esta restrição para garantir que todos os valores de uma coluna ou com­bi­na­ção de colunas sejam únicos.
  • CHECK: utilize CHECK para definir as condições que devem ser cumpridas ao inserir ou atualizar dados.
  • FOREIGN KEY: esta restrição é ne­ces­sá­ria para es­ta­be­le­cer relações com uma coluna de outra tabela.
  • DEFAULT: define um valor por defeito para uma coluna caso não seja es­pe­ci­fi­cado um valor explícito ao inserir.

Exemplo prático do Post­greSQL CREATE TABLE

A fun­ci­o­na­li­dade do Post­greSQL CREATE TABLE torna-se mais clara se a com­pre­en­der­mos através de um exemplo prático. Para isso, vamos criar uma nova tabela chamada «Lista de clientes». Ini­ci­al­mente, ela deve conter quatro colunas: «ID», «Nome», «País» e «Endereço». Definimos «ID» como PRIMARY KEY e as colunas «ID» e «Nome» não devem ficar vazias. O código cor­res­pon­dente é o seguinte:

CREATE TABLE lista_de_clientes(
ID INT PRIMARY KEY NOT NULL,
Nombre VARCHAR(50) NOT NULL,
País VARCHAR(50),
Dirección VARCHAR(255)
);
post­gresql

A base de dados irá agora criar uma tabela vazia com este nome e as colunas que definiu, que poderá preencher pos­te­ri­or­mente com valores. O resultado da tabela pre­en­chida seria algo se­me­lhante a isto:

ID Nome País Endereço
1 Mario Martínez Espanha Calle Mayor 1, 12345 Madrid
2
3

Ver tabelas criadas com \d

Para ter a certeza de que a ação Post­greSQL com CREATE TABLE foi executada com sucesso, pode utilizar o comando \d. Este comando mostra todas as tabelas exis­ten­tes numa base de dados. Eis como se utiliza:

testdb-# \d
post­gresql

Também pode utilizar o comando para obter uma descrição mais detalhada de uma tabela es­pe­cí­fica. Para obter uma lista de todas as es­pe­ci­fi­ca­ções do nosso exemplo anterior, utilize-o da seguinte forma:

testdb-# \d
post­gresql
Ir para o menu principal