Il comando CREATE TABLE in Post­gre­SQL permette di creare nuove tabelle all’interno di un database. Inoltre, con il comando è possibile definire di­ret­ta­men­te anche spe­ci­fi­che diverse per la tabella e per le sue singole colonne.

Che cos’è CREATE TABLE in Post­gre­SQL?

Il comando CREATE TABLE di Post­gre­SQL serve a creare una nuova tabella in un database già esistente. Uti­liz­zan­do questo comando si definisce sempre anche un nome univoco ed esclusivo per la tabella e per le sue singole colonne all’interno del database. A ciascuna colonna vengono assegnati anche un nome e il tipo di dati che deve essere presente nella colonna alla fine della procedura. Inoltre, è possibile definire dei vincoli per singole colonne o per tutte le colonne già in fase di creazione.

Consiglio

Se desideri mo­di­fi­ca­re le im­po­sta­zio­ni della tua tabella in un secondo tempo, nel sistema di gestione di database puoi farlo uti­liz­zan­do il comando ALTER TABLE, che ti permette di adattare singole colonne in base alle tue esigenze.

Sintassi e fun­zio­na­men­to di CREATE TABLE

La sintassi di base di CREATE TABLE in Post­gre­SQL è la seguente:

CREATE TABLE nome_della_tabella(
colonna1 tipo_di_dati PRIMARY KEY,
colonna2 tipo_di_dati,
colonna3 tipo_di_dati,
…
);
post­gre­sql

Per prima cosa devi quindi uti­liz­za­re il comando prin­ci­pa­le CREATE TABLE come istru­zio­ne per creare una nuova tabella in Post­gre­SQL. A questa tabella devi quindi assegnare un nome univoco. Dopo il nome occorre inserire fra parentesi le de­no­mi­na­zio­ni delle singole colonne e una de­fi­ni­zio­ne dei tipi di dati con­sen­ti­ti.

Se desideri già includere dei vincoli (i co­sid­det­ti “con­straint”), la sintassi cambia in questo modo:

CREATE TABLE nome_della_tabella(
colonna1 tipo_di_dati PRIMARY KEY vincolo,
colonna2 tipo_di_dati vincolo,
colonna3 tipo_di_dati vincolo,
…
);
post­gre­sql

Oltre a PRIMARY KEY, Post­gre­SQL supporta anche le seguenti tipologie di vincoli:

  • NOT NULL: permette di as­si­cu­rar­si che la colonna in questione non possa ricevere valori NULL.
  • UNIQUE: definisci questo vincolo per garantire che tutti i valori in una colonna o in una com­bi­na­zio­ne di colonne siano univoci.
  • CHECK: con CHECK puoi spe­ci­fi­ca­re le con­di­zio­ni da sod­di­sfa­re durante l’in­se­ri­men­to o l’ag­gior­na­men­to dei dati.
  • FOREIGN KEY: questo vincolo è ne­ces­sa­rio per impostare le relazioni con una colonna in un’altra tabella.
  • DEFAULT: definisce un valore pre­de­fi­ni­to per una colonna se non viene spe­ci­fi­ca­to alcun valore esplicito al momento dell’in­se­ri­men­to.
Server dedicati
Per­for­man­ce e in­no­va­zio­ne
  • Pro­ces­so­ri al­l'a­van­guar­dia di ultima ge­ne­ra­zio­ne
  • Hardware dedicato ad alte pre­sta­zio­ni
  • Data center cer­ti­fi­ca­ti ISO

Esempio pratico per CREATE TABLE in Post­gre­SQL

Il fun­zio­na­men­to di CREATE TABLE in Post­gre­SQL ti sarà più chiaro dopo aver osservato questo esempio pratico. A tal fine creiamo una nuova tabella de­no­mi­na­ta “Elenco clienti”. In­nan­zi­tut­to, la tabella ha quattro colonne: “ID”, “Nome”, “Stato” e “Indirizzo”. Definiamo quindi “ID” come PRIMARY KEY, mentre le colonne per “ID” e “Nome” non devono rimanere vuote. Il codice da uti­liz­za­re si presenta così:

CREATE TABLE Elenco clienti(
ID INT PRIMARY KEY NOT NULL,
Nome VARCHAR(50) NOT NULL,
Stato VARCHAR(50),
Indirizzo VARCHAR(255)
);
post­gre­sql

A questo punto, il database crea una tabella vuota con questo nome e le colonne da te definite, che potrai quindi compilare con i valori de­si­de­ra­ti. Il risultato della tabella compilata sarà quindi simile a questo:

ID Nome Stato Indirizzo
1 Mario Rossi Italia Via Garibaldi 1, 12345 Roma
2
3

Vi­sua­liz­za­zio­ne delle tabelle create con \d

Per as­si­cu­rar­ti che l’azione di Post­gre­SQL con CREATE TABLE sia stata eseguita cor­ret­ta­men­te puoi uti­liz­za­re il comando \d. Esso ti permette di elencare tutte le tabelle all’interno di un database. Funziona così:

testdb-# \d
post­gre­sql

In al­ter­na­ti­va, puoi uti­liz­za­re questo comando anche per ottenere una de­scri­zio­ne più precisa di una tabella specifica. Per ottenere un elenco di tutte le spe­ci­fi­che del nostro esempio pre­ce­den­te, utilizza il comando in questo modo:

testdb-# \d
post­gre­sql
Vai al menu prin­ci­pa­le