SQLite Introduction

Ce tutoriel vous aide à comprendre ce qu'est SQLite, les différences entre SQLite et SQL, pourquoi vous en avez besoin et comment ses applications gèrent les bases de données.

SQLite est une bibliothèque logicielle qui implémente un moteur de base de données SQL transactionnel, autonome, sans serveur et sans configuration. SQLite est le moteur de base de données dont la popularité croît le plus rapidement, quelle que soit sa taille. Le code source de SQLite n'est pas soumis à des restrictions de droits d'auteur.

Qu'est-ce que SQLite ?

SQLite est une bibliothèque intégrée au processus qui implémente un moteur de base de données SQL transactionnel, autonome, sans serveur et sans configuration. C'est une base de données sans configuration, ce qui signifie que, contrairement à d'autres bases de données, vous n'avez pas besoin de la configurer dans le système.

Comme d'autres bases de données, le moteur SQLite n'est pas un processus autonome ; il peut être lié statiquement ou dynamiquement à une application selon les besoins. SQLite accède directement à ses fichiers de stockage.

Pourquoi utiliser SQLite ?

  • Aucun processus serveur ni système d'exploitation distinct n'est requis (sans serveur).

  • SQLite ne nécessite aucune configuration, ce qui signifie qu'aucune installation ni administration n'est nécessaire.

  • Une base de données SQLite complète est stockée dans un seul fichier disque multiplateforme.

  • SQLite est très petit et léger ; il fait moins de 400KiB lorsqu'il est entièrement configuré, et moins de 250KiB lorsque les fonctionnalités optionnelles sont omises.

  • SQLite est autonome, ce qui signifie qu'il ne nécessite aucune dépendance externe.

  • Les transactions SQLite sont entièrement conformes à ACID, permettant un accès sûr depuis plusieurs processus ou threads.

  • SQLite prend en charge la plupart des fonctionnalités du langage de requête de la norme SQL92 (SQL2).

  • SQLite est écrit en ANSI-C et fournit une API simple et facile à utiliser.

  • SQLite fonctionne sur UNIX (Linux, Mac OS-X, Android, iOS) et Windows (Win32, WinCE, WinRT).

Historique

  1. 2000 -- D. Richard Hipp a conçu SQLite pour permettre aux programmes de fonctionner sans nécessiter d'administration.

  2. 2000 -- En août, SQLite 1.0 a été publié sous le nom de GNU Database Manager.

  3. 2011 -- Hipp a annoncé l'ajout de l'interface UNQl à SQLite DB, développant UNQLite (une base de données orientée document).

Limites de SQLite

Dans SQLite, les fonctionnalités SQL92 qui ne sont pas prises en charge sont les suivantes :

FonctionnalitéDescription
RIGHT OUTER JOINSeul LEFT OUTER JOIN est implémenté.
FULL OUTER JOINSeul LEFT OUTER JOIN est implémenté.
ALTER TABLEPrend en charge les variantes de commandes RENAME TABLE et ALTER TABLE ADD COLUMN, mais ne prend pas en charge DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.
Prise en charge des déclencheursPrend en charge les déclencheurs FOR EACH ROW, mais pas les déclencheurs FOR EACH STATEMENT.
VUESDans SQLite, les vues sont en lecture seule. Vous ne pouvez pas exécuter d'instructions DELETE, INSERT ou UPDATE sur les vues.
GRANT et REVOKELes seules permissions d'accès qui peuvent être appliquées sont les permissions d'accès aux fichiers normales du système d'exploitation sous-jacent.

Commandes SQLite

Les commandes SQLite standard pour interagir avec les bases de données relationnelles sont similaires à SQL. Les commandes incluent CREATE, SELECT, INSERT, UPDATE, DELETE et DROP. En fonction de la nature de leurs opérations, ces commandes peuvent être divisées en catégories suivantes :

DDL - Langage de définition de données

CommandeDescription
CREATECrée une nouvelle table, une vue d'une table ou d'autres objets dans la base de données.
ALTERModifie un objet existant de la base de données, tel qu'une table.
DROPSupprime une table entière, une vue d'une table ou d'autres objets dans la base de données.

DML - Langage de manipulation de données

CommandeDescription
INSERTCrée un enregistrement.
UPDATEModifie des enregistrements.
DELETESupprime des enregistrements.

DQL - Langage de requête de données

CommandeDescription
SELECTRécupère certains enregistrements d'une ou plusieurs tables.
Autres extensions