Creazione di tabelle in SQL: CREATE TABLE

La creazione di tabelle è una delle operazioni fondamentali in SQL (Structured Query Language) per organizzare i dati all'interno di un database relazionale. Le tabelle costituiscono la struttura di base per l'archiviazione dei dati, e comprenderne la creazione e la gestione è essenziale per chiunque lavori con i database.

In questa pagina, esploreremo in dettaglio come utilizzare il comando CREATE TABLE in SQL, le varie opzioni disponibili, e le best practices per ottimizzare le tabelle.

Cos'è una tabella in SQL?

Una tabella in SQL è una struttura di dati che organizza le informazioni in righe e colonne. Ogni riga rappresenta un record, mentre ogni colonna rappresenta un attributo del record. Le tabelle possono essere collegate tra loro tramite chiavi primarie e chiavi esterne, formando così un database relazionale.

Comando CREATE TABLE

Il comando CREATE TABLE in SQL viene utilizzato per creare una nuova tabella all'interno di un database. La sintassi di base è la seguente:

CREATE TABLE nome_tabella ( nome_colonna tipo_dato [opzioni], ... );

Supponiamo di voler creare una tabella chiamata clienti per gestire le informazioni sui clienti:

CREATE TABLE clienti ( id INT PRIMARY KEY, nome VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, data_iscrizione DATE );

In questo esempio, abbiamo creato una tabella con quattro colonne: id, nome, email e data_iscrizione.

Tipi di dati delle colonne

I tipi di dati delle colonne definiscono il tipo di valori che possono essere memorizzati. Ecco alcuni dei tipi di dati più comuni:

  • INT: Numero intero.

  • VARCHAR(n): Stringa di caratteri di lunghezza variabile fino a n.

  • DATE: Data nel formato YYYY-MM-DD.

  • FLOAT: Numero in virgola mobile.

  • BOOLEAN: Valore booleano (TRUE o FALSE).

Opzioni delle colonne

Le opzioni delle colonne forniscono ulteriori dettagli e restrizioni sui dati che possono essere memorizzati. Alcune delle opzioni più comuni sono:

  • PRIMARY KEY: Identifica in modo univoco ogni record nella tabella.

  • NOT NULL: La colonna non può contenere valori NULL.

  • UNIQUE: I valori della colonna devono essere unici.

  • DEFAULT: Specifica un valore predefinito per la colonna.

Chiavi primarie e esterne

La chiave primaria è un identificatore univoco per ogni record in una tabella. Viene definita utilizzando la clausola PRIMARY KEY:

CREATE TABLE ordini ( id INT PRIMARY KEY, cliente_id INT, importo DECIMAL(10, 2) );

La chiave esterna crea un legame tra due tabelle, utilizzando la clausola FOREIGN KEY per assicurare l'integrità referenziale:

CREATE TABLE ordini ( id INT PRIMARY KEY, cliente_id INT, importo DECIMAL(10, 2), FOREIGN KEY (cliente_id) REFERENCES clienti(id) );

Gestione delle tabelle

Per modificare la struttura di una tabella esistente, si utilizza il comando ALTER TABLE:

ALTER TABLE clienti ADD COLUMN telefono VARCHAR(15);

Per eliminare una tabella, si utilizza il comando DROP TABLE:

DROP TABLE clienti;

Esempio completo di creazione di tabelle

Ecco un esempio completo che mostra la creazione di una tabella con vari tipi di dati, chiavi primarie ed esterne:

-- Creazione della tabella clienti CREATE TABLE clienti ( id INT PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, data_iscrizione DATE );
-- Creazione della tabella ordini CREATE TABLE ordini ( id INT PRIMARY KEY AUTO_INCREMENT, cliente_id INT, importo DECIMAL(10, 2), data_ordine DATETIME, FOREIGN KEY (cliente_id) REFERENCES clienti(id) );

Conclusione

La creazione di tabelle in SQL è un passo cruciale per organizzare e gestire i dati in un database relazionale. Utilizzando il comando CREATE TABLE in modo efficace, è possibile definire strutture dati robuste e scalabili. Seguire le best practices, come l'utilizzo di nomi significativi, la definizione di chiavi primarie ed esterne, e l'applicazione di vincoli di integrità, aiuta a garantire che il database sia efficiente e manutenibile.