# CREATE TABLE in MariaDB: come creare una nuova tabella

In MariaDB, il comando CREATE TABLE si usa per creare nuove tabelle. Poiché tali tabelle devono essere uniche all’interno del database, esistono le opzioni OR REPLACE e IF NOT EXISTS, che aiutano a evitare duplicati e messaggi di errore.

## Cos’è `CREATE TABLE` in MariaDB?

In MariaDB, l’istruzione `CREATE TABLE` serve a **creare una nuova tabella** che può essere compilata con dati. Poiché MariaDB è un sistema di gestione di database relazionali (DBMS), queste tabelle costituiscono la base per tutte le operazioni di memorizzazione. Durante la creazione della tabella, si definiscono le singole colonne e si specificano i tipi di dati che esse possono contenere. Le tabelle all’interno di un nuovo database (che si crea con [CREATE DATABASE in MariaDB](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-database/)) sono uniche. Per questo, qualora esista già una tabella con lo stesso nome, viene visualizzato un messaggio di errore. Nei prossimi paragrafi illustriamo come usare il comando `CREATE TABLE` in MariaDB e quali specificazioni puoi aggiungere.

## Sintassi e funzionamento

La sintassi generica di `CREATE TABLE` in MariaDB segue sempre questo principio:

```sql
CREATE TABLE nome_della_tabella(
	nome_della_prima_colonna tipodidati_della_prima_colonna,
	nome_della_seconda_colonna tipodidati_della_seconda_colonna,
	…
);
```

Anzitutto crei una nuova tabella, alla quale assegnerai un nome specifico invece del segnaposto “Nome\_della\_tabella”. Puoi usare qualsiasi carattere del [codice ASCII](https://www.ionos.it/digitalguide/server/know-how/ascii-american-standard-code-for-information-interchange/). Successivamente, definisci le colonne della tabella, indicando per ciascuna un **nome e il tipo di dati** che può contenere. Ricorda di separare le colonne con delle virgole.

## `OR REPLACE` e `IF NOT EXISTS`

Poiché le tabelle devono avere un nome univoco, qualora esista già una tabella con lo stesso nome comparirà un messaggio di errore. Per prevenire questo problema hai due possibilità: la prima è usare `OR REPLACE` e verificare se nel database esiste già una tabella con lo stesso nome. In caso affermativo, la **vecchia tabella viene sostituita con quella nuova**. In caso negativo viene creata una nuova tabella. Questa è la sintassi dell’istruzione:

```sql
CREATE OR REPLACE TABLE nome_della_tabella(
	nome_della_prima_colonna tipodidati_della_prima_colonna,
	nome_della_seconda_colonna tipodidati_della_seconda_colonna,
	…
);
```

Tuttavia, ricorda che questo comando sovrascrive la tabella e i dati andranno persi. Lo snippet precedente è una forma abbreviata del seguente codice:

```sql
DROP TABLE IF EXISTS nome_della_tabella;
CREATE TABLE nome_della_tabella(
	nome_della_prima_colonna tipodidati_della_prima_colonna,
	nome_della_seconda_colonna tipodidati_della_seconda_colonna,
	…
);
```

Un altro modo per evitare duplicati e i messaggi di errore che ne conseguono è usare l’opzione IF NOT EXISTS. Questa istruzione verifica se nel database esiste già una tabella con lo stesso nome. Qualora la tabella esista già, viene visualizzato un messaggio **senza che la tabella venga sovrascritta**. Se non esiste alcuna tabella con quel nome, verrà creata una nuova tabella. Questa la è la relativa sintassi:

```sql
CREATE TABLE IF NOT EXISTS nome_della_tabella(
	nome_della_prima_colonna tipodidati_della_prima_colonna,
	nome_della_seconda_colonna tipodidati_della_seconda_colonna,
	…
);
```

## Esempio di CREATE TABLE in MariaDB

Di seguito ti presentiamo un breve esempio per spiegare il funzionamento di `CREATE TABLE` in MariaDB. Nell’esempio creiamo una tabella per un elenco di progetti fittizi con un totale di otto colonne. Questo è il relativo codice:

```sql
CREATE TABLE progetti(
	numerodiprogetto INT AUTO_INCREMENT,
	cognome VARCHAR(50) NOT NULL,
	nome VARCHAR(50),
	inizio DATE,
	fine DATE,
	costi DOUBLE,
	compiti VARCHAR(255) NOT NULL,
	created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (numerodiprogetto)
);
```

Prima di tutto creiamo una nuova tabella chiamata “Progetti”. Successivamente, specifichiamo le colonne come segue:

- **numerodiprogetto**: questa colonna assegna un numero univoco a ciascun progetto e viene utilizzata come chiave primaria per identificare chiaramente ogni riga. Usando `AUTO_INCREMENT` il programma aumenterà progressivamente la numerazione nella colonna “numerodiprogetto” in modo da garantire una sequenza uniforme.
- **cognome**: in questa colonna si assegna il cognome del cliente o della cliente, il quale può contenere al massimo 50 caratteri. Usando l’attributo `NOT NULL` indichiamo che questa colonna non può rimanere vuota.
- **nome**: questa colonna funziona in modo simile alla precedente. Ma poiché il nome non è obbligatorio per la fatturazione, questo campo può essere lasciato vuoto.
- **inizio**: in questa colonna si registra la data di inizio di un progetto continuo. Sono ammessi valori nel formato data specificato o il valore zero.
- **fine**: la colonna “fine” indica la scadenza o la data di completamento del progetto. Anche in questo caso, i valori possono presentare il formato `DATE` o `NULL`.
- **costi**: in questa colonna compare l’importo della fattura, che viene inserito nel formato “DOUBLE”.
- **attività**: questa colonna contiene una breve descrizione dei servizi svolti per il progetto. Lo spazio massimo a disposizione è di 255 caratteri e la colonna non può rimanere vuota.
- **created\_at**: infine, in questa colonna compare la data di creazione del progetto. Questo avviene sulla base dell’ora e della data corrente del sistema.

Consiglio Nella nostra Digital Guide puoi leggere numerosi articoli utili su MariaDB. Ad esempio, puoi scoprire come usare il comando [MariaDB CREATE USER](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-user/). Puoi anche leggere questo articolo di [confronto fra MariaDB e MySQL](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-vs-mysql/) nonché imparare tutto quello che c’è da sapere sull’[installazione di MariaDB](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/come-installare-mysql-o-mariadb/).


This is a markdown version of: [https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-table/](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-table/) for AI/LLM consumption.