SQLite - Panoramica

Questo capitolo ti aiuta a capire cos'è SQLite, come differisce da SQL, perché è necessario e il modo in cui gestisce il database delle applicazioni.

SQLite è una libreria software che implementa un motore di database SQL autonomo, senza server, a configurazione zero e transazionale. SQLite è uno dei motori di database in più rapida crescita in circolazione, ma è una crescita in termini di popolarità, non ha nulla a che fare con le sue dimensioni. Il codice sorgente per SQLite è di pubblico dominio.

Cos'è SQLite?

SQLite è una libreria in-process che implementa un motore di database SQL autonomo, senza server, a configurazione zero e transazionale. È un database, che non è configurato, il che significa che come altri database non è necessario configurarlo nel sistema.

Il motore SQLite non è un processo autonomo come gli altri database, puoi collegarlo staticamente o dinamicamente secondo le tue esigenze con la tua applicazione. SQLite accede direttamente ai suoi file di archiviazione.

Perché SQLite?

  • SQLite non richiede un processo o un sistema server separato per funzionare (senza server).

  • SQLite viene fornito con configurazione zero, il che significa che non è necessaria alcuna installazione o amministrazione.

  • Un database SQLite completo viene archiviato in un unico file su disco multipiattaforma.

  • SQLite è molto piccolo e leggero, meno di 400 KiB completamente configurato o meno di 250 KiB con funzionalità opzionali omesse.

  • SQLite è autonomo, il che significa che non ci sono dipendenze esterne.

  • Le transazioni SQLite sono completamente conformi ad ACID, consentendo un accesso sicuro da più processi o thread.

  • SQLite supporta la maggior parte delle funzionalità del linguaggio di query trovate nello standard SQL92 (SQL2).

  • SQLite è scritto in ANSI-C e fornisce API semplici e facili da usare.

  • SQLite è disponibile su UNIX (Linux, Mac OS-X, Android, iOS) e Windows (Win32, WinCE, WinRT).

SQLite Una breve storia

  • 2000 - D. Richard Hipp ha progettato SQLite allo scopo di non richiedere alcuna amministrazione per il funzionamento di un programma.

  • 2000 - In agosto, SQLite 1.0 è stato rilasciato con GNU Database Manager.

  • 2011 - Hipp ha annunciato di aggiungere l'interfaccia UNQl al DB SQLite e di sviluppare UNQLite (database orientato ai documenti).

Limitazioni di SQLite

Esistono alcune funzionalità non supportate di SQL92 in SQLite elencate nella tabella seguente.

Sr.No. Caratteristica e descrizione
1

RIGHT OUTER JOIN

Viene implementato solo LEFT OUTER JOIN.

2

FULL OUTER JOIN

Viene implementato solo LEFT OUTER JOIN.

3

ALTER TABLE

Sono supportate le varianti RENAME TABLE e ADD COLUMN del comando ALTER TABLE. DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT non sono supportati.

4

Trigger support

I trigger FOR EACH ROW sono supportati ma non i trigger FOR EACH STATEMENT.

5

VIEWs

Le VISUALIZZAZIONI in SQLite sono di sola lettura. Non è possibile eseguire un'istruzione DELETE, INSERT o UPDATE su una vista.

6

GRANT and REVOKE

Le uniche autorizzazioni di accesso che possono essere applicate sono le normali autorizzazioni di accesso ai file del sistema operativo sottostante.

Comandi SQLite

I comandi SQLite standard per interagire con i database relazionali sono simili a SQL. Sono CREATE, SELECT, INSERT, UPDATE, DELETE e DROP. Questi comandi possono essere classificati in gruppi in base alla loro natura operativa:

DDL - Data Definition Language

Sr.No. Comando e descrizione
1

CREATE

Crea una nuova tabella, una vista di una tabella o un altro oggetto nel database.

2

ALTER

Modifica un oggetto di database esistente, come una tabella.

3

DROP

Elimina un'intera tabella, una vista di una tabella o un altro oggetto nel database.

DML - Data Manipulation Language

Sr.No. Comando e descrizione
1

INSERT

Crea un record

2

UPDATE

Modifica i record

3

DELETE

Elimina i record

DQL - Data Query Language

Sr.No. Comando e descrizione
1

SELECT

Recupera determinati record da una o più tabelle