# 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.