Il comando SQL CREATE TABLE viene usato per creare una nuova tabella, che deve essere con­tras­se­gna­ta in modo univoco all’interno del database. Già al momento della creazione dovrai impostare alcuni parametri im­por­tan­ti. Inoltre, puoi partire anche da una tabella già esistente.

Cos’è SQL CREATE TABLE?

Dopo aver creato un database SQL con lo Struc­tu­red Query Language puoi generare una nuova tabella. Questa serve a salvare i vari record di dati e determina la struttura nella quale questi dati verranno rie­la­bo­ra­ti. Da un lato, le tabelle sono composte da campi o colonne che possono contenere de­ter­mi­na­ti tipi di dati; dall’altro, da righe che elencano tali dati. Per creare una nuova tabella si usa il comando SQL CREATE TABLE. Grazie a questo comando non generi solo una nuova tabella, ma definisci fin dal principio come sarà strut­tu­ra­ta. Suc­ces­si­va­men­te compili la tabella con i dati.

Server virtuali (VPS)
Affidati ai VPS e server di IONOS, il tuo partner digitale cer­ti­fi­ca­to ISO
  • 1 Gbps di larghezza di banda e traffico il­li­mi­ta­to
  • Di­spo­ni­bi­li­tà del 99,99% e cer­ti­fi­ca­zio­ne ISO
  • As­si­sten­za 24/7 e con­su­len­te personale

Sintassi e fun­zio­na­men­to

Os­ser­van­do da vicino la sintassi di SQL CREATE TABLE risulta subito chiaro che, per con­sen­ti­re il corretto fun­zio­na­men­to della tabella, è ne­ces­sa­rio spe­ci­fi­ca­re fin da subito i tipi di dati e de­no­mi­na­re cor­ret­ta­men­te gli elementi. La sintassi di base è la seguente:

CREATE TABLE nome_della_tabella (
colonna1 tipo_di_dato,
colonna2 tipo_di_dato,
colonna3 tipo_di_dato,
…
);
sql

Con il comando SQL CREATE TABLE crei una nuova tabella e spe­ci­fi­chi il nome nella prima riga. Quindi procedi a definire la tabella all’interno di due parentesi. Con colonna1, colonna2 e così via denomini le colonne, mentre con tipo_di_dato spe­ci­fi­chi quali tipi di dati possono essere salvati all’interno della relativa colonna. Ad esempio, i tipi di dati usati più spesso sono VARCHAR (una stringa che può contenere caratteri, numeri o caratteri speciali), BOOLEAN (per i valori booleani true o false), INT (per i valori numerici) o DATE (per le date).

Esempio di una nuova tabella

Per com­pren­de­re al meglio come funziona SQL CREATE TABLE, pre­sen­tia­mo di seguito alcuni esempi pratici di come può essere strut­tu­ra­ta una tabella. A tal proposito creiamo un elenco di di­pen­den­ti con­te­nen­te l’ID del di­pen­den­te, il cognome, il nome, l’indirizzo, la città e l’età. In totale abbiamo quindi bisogno di sei colonne, che possono contenere diversi tipi di dati. Questo è il codice cor­ri­spon­den­te:

CREATE TABLE Collaboratore (
ID INT NOT NULL,
Cognome VARCHAR(50),
Nome VARCHAR(50),
Indirizzo VARCHAR(50),
Città VARCHAR(50),
Età INT NOT NULL
);
sql

Per ID e Età se­le­zio­nia­mo il tipo di dato INT che ammette numeri. L’attributo NOT NULL sta­bi­li­sce quali di questi campi non possono restare vuoti. Le colonne restanti quali Cognome, Nome, Indirizzo e Città possono contenere lettere, numeri e caratteri speciali.

Com­bi­na­zio­ne con il comando IF NOT EXISTS

Per per­met­te­re al sistema di accedere a una de­ter­mi­na­ta tabella, questa deve essere univoca all’interno del database. Questo principio vale per tutte le tabelle esistenti. Pertanto, se cerchi di creare una nuova tabella con SQL CREATE TABLE se­le­zio­nan­do un nome già esistente, otterrai un messaggio di errore del tipo Error: table already exists. Per prevenire questo in­con­ve­nien­te puoi ag­giun­ge­re il comando opzionale IF NOT EXISTS, che serve a ve­ri­fi­ca­re se esiste già una tabella con quel nome e, in caso contrario, crea una nuova tabella con i parametri me­mo­riz­za­ti. Di seguito la variante pre­ce­den­te, completa del comando IF NOT EXISTS:

CREATE TABLE IF NOT EXISTS Collaboratori (
ID INT NOT NULL,
Cognome VARCHAR(50),
Nome VARCHAR(50),
Indirizzo VARCHAR(50),
Città VARCHAR(50),
Età INT NOT NULL
);
sql

Creare una nuova tabella sulla base di una già esistente

Pur essendo molto facile da usare, questo comando può risultare scomodo quando ci si trova a creare più tabelle simili fra loro. Per questo motivo con SQL CREATE DATABASE hai anche la pos­si­bi­li­tà di creare una nuova tabella sulla base di una tabella già esistente. In questo caso puoi scegliere se crearne una copia esatta o se ri­pren­de­re solo alcuni parametri. Di seguito ti il­lu­stria­mo entrambe le procedure. Nel primo caso creiamo un elenco di col­la­bo­ra­to­ri e col­la­bo­ra­tri­ci per una nuova filiale. La struttura della tabella è identica, ma richiede un nuovo nome. Il relativo codice si presenta così:

CREATE TABLE Nuovo_elenco_collaboratori
AS
SELECT *
FROM Collaboratori;
sql

Tramite l’asterisco se­gna­lia­mo al sistema che deve rilevare tutte le colonne.

Nell’esempio sot­to­stan­te creiamo un elenco di clienti. Questo deve contenere le colonne ID, cognome, nome, indirizzo e città, ma non la colonna data di nascita. Per questo spe­ci­fi­chia­mo esat­ta­men­te quali colonne devono essere copiate:

CREATE TABLE Elenco_clienti
AS
SELECT ID, cognome, nome, indirizzo, città
FROM Collaboratori;
sql

Comandi simili a SQL CREATE TABLE

Oltre a CREATE DATABASE, esistono una serie di comandi utili che integrano SQL CREATE TABLE. Fra questi citiamo SQL DELETE, che consente di can­cel­la­re dati da una tabella, e gli alias SQL, grazie ai quali è possibile mo­di­fi­ca­re il nome di una tabella o colonna.

Consiglio

Il tuo server personale: grazie all’hosting SQL server di IONOS non puoi solo scegliere fra MSSQL, MySQL e MariaDB, ma hai a di­spo­si­zio­ne anche numerose fun­zio­na­li­tà utili. Trova la soluzione più adatta alle tue esigenze!

Vai al menu prin­ci­pa­le