Il sito di riferimento di SQLite è https://www.sqlite.org.
Per interagire con il motore relazionale SQLite, è necessario disporre delle utility fornite sul sito ufficiale.
Tipi di dato
I tipi di dato gestiti da SQLite ver. 3 sono:
INTEGER: numero intero memorizzato in un numero di byte variabile (da 1 a 8 byte).
REAL: un numero con parte decimale (memorizzato in 8 byte).
TEXT: una stringa di testo (formati supportati: UTF-8, UTF-16BE or UTF-16LE).
BLOB: dati in formato binario, memorizzati così come vengono forniti.
I formati riconosciuti durante la creazione delle tabelle sono automaticamente convertiti in tipi affini, come di seguito illustrato:
Durante il caricamento, i dati non coerenti con i tipi dichiarati sono comunque caricati, selezionando il tipo affine più adatto.
Invece, i dati coerenti saranno associati al tipo di dato definito per il campo.
Ad esempio, il valore 1 caricato in un campo REAL sarà considerato REAL; il valore 1 caricato in campo INTEGER sarà considerato INTEGER.
Se il campo è di tipo NUMERIC, i dati coerenti caricati saranno considerati alternativamente INTEGER o REAL in base al formato.
Per verificare il formato associato a ciascun dato caricato, si utilizza il comando SQL
SELECT TYPEOF(nome_campo1), TYPEOF(nome_campo2) FROM nome_tabella;
Autoincremento dello chiave primaria
Una tabella che contiene una chiave primaria di tipo intero, beneficia automaticamente dell'opzione di autoincremento.
Consideriamo la tabella così definita
CREATE TABLE Fiori(
FioreID INTEGER PRIMARY KEY,
Denominazione TEXT NOT NULL
);
Per inserire un nuovo record utilizzando l'autoincremento della chiave, si può procedere in uno dei seguenti modi:
INSERT INTO Fiori(Denominazione) VALUES('Ibisco');
oppure
INSERT INTO Fiori VALUES(null, 'Ibisco');
E' anche possibile inserire esplicitamente il valore della chiave come illustrato di seguito:
INSERT INTO Fiori VALUES(101, 'Gelsomino');
Vincoli di integrità (FOREIGN KEY)
Esempi di creazione di tabelle con Foreign Key:
CREATE TABLE track(
trackid INTEGER PRIMARY KEY,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist)
REFERENCES artist(artistid)
);
CREATE TABLE house_items (
house_id INTEGER NOT NULL,
item_id INTEGER NOT NULL,
FOREIGN KEY (house_id)
REFERENCES houses(id),
FOREIGN KEY (item_id)
REFERENCES electrical_items(id),
PRIMARY KEY (house_id, item_id)
);
Il comando PRAGMA
Il comando PRAGMA è una speciale istruzione SQL valida esclusivamente nell'ambito di SQLite.
Questo comando è utilizzato per modificare alcuni comportamenti di SQLite.
Controlli di integrità
Per abilitare i controlli di integrità su chiave esterna occorre preventivamente eseguire il seguente comando:
PRAGMA foreign_keys = ON;
Codifica UTF-8
Per creare un database con il supporto della codifica UTF-8 occorre richiamare il seguente comando prima di creare il database:
PRAGMA encoding="UTF-8";
Sito: 7ecnologie
Sezione: 12. SQL
Capitolo: 06. SQLite
Paragrafo: 01. Generalità
Indice dei capitoli: 00. Risorse - 01. Generalità - 02. Comandi di DML - 03. Comandi di DDL - 04. Comandi di DCL - 05. Comandi di TCL - 06. SQLite - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Generalità - 02. Generazione e popolamento di un DB - 03. Comandi interattivi - 04. Transazioni