Salta ai contenuti
Manuale LogoManuale Logo

CREATE TABLE

CREATE TABLE serve a creare una nuova tabella.

Non inserisci ancora dati. Definisci il nome della tabella, le colonne e alcune regole di base.

Puoi pensarlo come un modulo: stabilisci quali campi servono, per esempio nome, email e data di iscrizione.

Questa query crea una tabella per salvare clienti:

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

Dopo questa query, la tabella clienti esiste, ma è vuota. Per aggiungere righe userai INSERT.

Dentro le parentesi trovi le colonne:

  • id è un numero intero e identifica ogni cliente.
  • nome è testo fino a 100 caratteri e non può mancare.
  • email è testo fino a 150 caratteri.
  • data_iscrizione contiene una data.

La tabella, tradotta in italiano, dice:

“Ogni cliente ha un id, un nome, forse un’email e forse una data di iscrizione.”

Se riesci a descrivere la tabella in questo modo, la definizione è comprensibile.

PRIMARY KEY indica la chiave primaria, cioè il valore che identifica una riga senza confonderla con altre.

È come il numero di tessera di una palestra: due persone possono chiamarsi entrambe Luca, ma non dovrebbero avere lo stesso numero.

Per questo spesso si usa una colonna id: non descrive la persona, la identifica.

NOT NULL significa che una colonna non può restare vuota.

Nel nostro esempio:

nome VARCHAR(100) NOT NULL

vuol dire che ogni cliente deve avere un nome.

Suggerimento: Usa NOT NULL per i dati davvero necessari. Se un’informazione può mancare nella vita reale, non renderla obbligatoria solo per abitudine.

Quando crei una colonna, scegli almeno due cose:

  • il tipo, cioè che forma avrà il dato
  • le regole, cioè cosa il database deve controllare

Per esempio:

prezzo DECIMAL(10, 2) NOT NULL

Qui DECIMAL(10, 2) dice che prezzo è un numero decimale. NOT NULL dice che il prezzo deve esserci.

Il database conserva i dati e applica queste regole per mantenerli coerenti.

All’inizio può venire voglia di creare colonne generiche come info o dati.

È meglio evitarlo. Una tabella è più comprensibile quando ogni colonna ha un compito chiaro.

CREATE TABLE prodotti (
id INT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
prezzo DECIMAL(10, 2) NOT NULL
);

Qui capisci subito cosa contiene ogni colonna. Non devi indovinare.

Fai queste domande:

  • che cosa rappresenta ogni riga?
  • quale colonna identifica una riga?
  • quali dati sono obbligatori?
  • quali dati possono mancare?
  • i tipi scelti sono adatti ai valori reali?

Non serve progettare tutto perfettamente al primo colpo, ma queste domande evitano molte tabelle confuse.

  • CREATE TABLE crea la struttura di una tabella.
  • Ogni colonna ha un nome e un tipo.
  • PRIMARY KEY identifica ogni riga.
  • NOT NULL rende una colonna obbligatoria.
  • Dopo aver creato la tabella, puoi aggiungere dati con INSERT.