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
2000 -- D. Richard Hipp a conçu SQLite pour permettre aux programmes de fonctionner sans nécessiter d'administration.
2000 -- En août, SQLite 1.0 a été publié sous le nom de GNU Database Manager.
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 JOIN | Seul LEFT OUTER JOIN est implémenté. |
| FULL OUTER JOIN | Seul LEFT OUTER JOIN est implémenté. |
| ALTER TABLE | Prend 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éclencheurs | Prend en charge les déclencheurs FOR EACH ROW, mais pas les déclencheurs FOR EACH STATEMENT. |
| VUES | Dans SQLite, les vues sont en lecture seule. Vous ne pouvez pas exécuter d'instructions DELETE, INSERT ou UPDATE sur les vues. |
| GRANT et REVOKE | Les 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
| Commande | Description |
|---|---|
| CREATE | Crée une nouvelle table, une vue d'une table ou d'autres objets dans la base de données. |
| ALTER | Modifie un objet existant de la base de données, tel qu'une table. |
| DROP | Supprime 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
| Commande | Description |
|---|---|
| INSERT | Crée un enregistrement. |
| UPDATE | Modifie des enregistrements. |
| DELETE | Supprime des enregistrements. |
DQL - Langage de requête de données
| Commande | Description |
|---|---|
| SELECT | Récupère certains enregistrements d'une ou plusieurs tables. |