SQLite Crea, modifica, elimina tabella con esempi
โก Riepilogo intelligente
SQLite La gestione delle tabelle si basa su tre comandi di definizione dei dati: CREATE TABLE per definire una tabella, ALTER TABLE per rinominarla o aggiungere e modificare colonne e DROP TABLE per rimuoverla completamente dal database.

Le sezioni seguenti mostrano come creare tabelle, modificarne la struttura e trascinare le tabelle in SQLite3 con esempi, che illustrano i comandi CREATE TABLE, ALTER TABLE e DROP TABLE.
SQLite Crea una tabella
Sintassi
Di seguito รจ riportata la sintassi dell'istruzione CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Per creare una tabella, รจ necessario utilizzare la query "CREATE TABLE" come segue:
CREATE TABLE guru99 ( Id Int, Name Varchar );
All'interno delle due parentesi dopo il nome della tabella, si definiscono le colonne della tabella; ogni colonna deve avere le seguenti proprietร :
- Un nome, il nome della colonna dovrebbe essere univoco tra le colonne della tabella.
- Un tipo di dati โ il tipo di dati della colonna.
- Vincoli opzionali per le colonne, come spiegheremo nelle sezioni successive di questo tutorial.
SQLite CREA LA TABELLA SE NON ESISTE
Quando uno script viene eseguito piรน di una volta, una semplice istruzione CREATE TABLE fallisce se la tabella esiste giร e si interrompe con un errore. SQLite Questo problema viene risolto con la clausola opzionale IF NOT EXISTS, che crea la tabella solo se mancante e non fa nulla se รจ giร presente.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
L'istruzione di cui sopra non genera mai l'errore "la tabella esiste giร ", il che la rende sicura da mantenere all'inizio di uno script di configurazione o di migrazione.
Lo stesso principio funziona anche al contrario quando si elimina una tabella. Aggiungendo IF EXISTS a DROP TABLE si evita un errore quando la tabella รจ giร stata eliminata:
DROP TABLE IF EXISTS guru99;
Entrambe le clausole sono comuni negli script automatizzati, perchรฉ consentono l'esecuzione ripetuta dello stesso file senza necessitร di pulizia manuale tra un'esecuzione e l'altra.
tavola a caduta
Per eliminare una tabella, utilizzare il comando "DROP TABLE" seguito dal nome della tabella, come segue:
DROP TABLE guru99;
Modifica tabella
ร possibile utilizzare il comando "ALTER TABLE" per rinominare una tabella nel modo seguente:
ALTER TABLE guru99 RENAME TO guru100;
Per verificare che il nome della tabella sia stato modificato, รจ possibile utilizzare il comando ".tables" per visualizzare l'elenco delle tabelle; il nome della tabella dovrebbe ora essere modificato come segue:
Come puoi vedere, il nome della tabella "guru99" viene modificato in "guru100" dopo il comando "alter table".
SQLite aggiungi colonne: utilizzando il comando ALTER TABLE
ร possibile utilizzare anche il comando "ALTER TABLE" per aggiungere colonne:
ALTER TABLE guru100 ADD COLUMN Age INT;
Questo modificherร la tabella "guru100" e aggiungerร una nuova colonna denominata Etร .
Se non viene visualizzato alcun output, significa che l'istruzione รจ stata eseguita correttamente e la colonna รจ stata aggiunta. Nessun output significa che il cursore verrร posizionato dopo "sqlite>" senza alcun testo successivo, in questo modo:
Tuttavia, per verificare che la colonna sia stata aggiunta, possiamo usare il comando ".schema guru100". Questo ti mostrerร la definizione della tabella e dovresti vedere la nuova colonna che abbiamo appena aggiunto:
SQLite ALTER TABLE: Rinominare ed eliminare una colonna
Oltre ad aggiungere una colonna, le versioni moderne di SQLite รจ anche possibile rinominare una singola colonna e rimuoverne una. La ridenominazione di una colonna รจ disponibile da SQLite 3.25, e aggiorna il nome all'interno della definizione della tabella, nonchรฉ in ogni indice, trigger e vista che fa riferimento alla colonna.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Per rimuovere una colonna, SQLite 3.35 e versioni successive supportano una clausola DROP COLUMN diretta:
ALTER TABLE guru100 DROP COLUMN Age;
Una colonna non puรฒ essere eliminata quando fa parte di una chiave primaria, di un vincolo di unicitร o di un indice. Su versioni precedenti SQLite Nelle versioni prive dell'opzione DROP COLUMN, la soluzione classica consiste nel creare una nuova tabella con le colonne desiderate, copiare le righe, eliminare la vecchia tabella e infine rinominare quella nuova.
Come copiare una tabella in SQLite Utilizzo di CREATE TABLE AS SELECT
A volte รจ necessario avere una copia di una tabella, sia come backup prima di una modifica rischiosa, sia come punto di partenza per una nuova tabella. SQLite Questo viene creato in un unico passaggio con CREATE TABLE AS SELECT, che crea una nuova tabella le cui colonne provengono da una query e la popola con le righe restituite da tale query.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
La nuova tabella "guru100_backup" riceve le stesse colonne e tutte le righe da "guru100". Per copiare solo alcune righe, aggiungi una clausola WHERE alla SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Un aspetto importante da ricordare รจ che CREATE TABLE AS SELECT copia i nomi delle colonne, i tipi e i dati, ma non le chiavi primarie, gli altri vincoli o gli indici. ร necessario aggiungerli manualmente alla nuova tabella se la copia deve rispettare le stesse regole dell'originale.
SQLite Inserisci un valore in una tabella
Per inserire valori in una tabella, utilizziamo l'istruzione "INSERT INTO" come segue:
INSERT INTO Tablename(colname1, colname2, โฆ.) VALUES(valu1, value2, โฆ.);
Puoi omettere i nomi delle colonne dopo il nome della tabella e scriverli come segue:
INSERT INTO Tablename VALUES(value1, value2, โฆ.);
In tal caso, quando si omettono i nomi delle colonne dalle tabelle, il numero di valori inseriti deve essere esattamente lo stesso numero di colonne della tabella. Quindi ogni valore verrร inserito nella colonna corrispondente. Ad esempio, per la seguente istruzione insert:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Il risultato di questa affermazione sarร il seguente:
- Il valore 1 verrร inserito nella colonna "id".
- Il valore 'Mike' verrร inserito nella colonna "Nome" e
- Il valore 25 verrร inserito nella colonna โEtร โ.
Istruzione INSERT... DEFAULT VALUES
ร possibile popolare la tabella con i valori predefiniti per le colonne contemporaneamente come segue:
INSERT INTO Tablename DEFAULT VALUES;
Se una colonna non consente nรฉ un valore nullo nรฉ un valore predefinito, verrร visualizzato un errore del tipo "Condizione NOT NULL non rispettata" per quella colonna. Come mostrato di seguito:





