Résumé :dans ce tutoriel, nous allons vous présenter les commandes SQLite les plus couramment utilisées du programme en ligne de commande sqlite3.
Le projet SQLite fournit un outil de ligne de commande simple nommé sqlite3 (ou sqlite3.exe sous Windows) qui vous permet d'interagir avec les bases de données SQLite à l'aide d'instructions et de commandes SQL.
Se connecter à une base de données SQLite
Pour démarrer le sqlite3, vous tapez le sqlite3 comme suit :
>sqlite3
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
Code language: Shell Session (shell)
Par défaut, une session SQLite utilise la base de données en mémoire, par conséquent, toutes les modifications seront supprimées à la fin de la session.
Pour ouvrir un fichier de base de données, vous utilisez le .open FILENAME
commande. L'instruction suivante ouvre le chinook.db
base de données :
sqlite> .open c:\sqlite\db\chinook.db
Code language: Shell Session (shell)
Si vous souhaitez ouvrir un fichier de base de données spécifique lorsque vous vous connectez à la base de données SQLite, vous utilisez la commande suivante :
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>
Code language: Shell Session (shell)
Si vous démarrez une session avec un nom de base de données qui n'existe pas, l'outil sqlite3 créera le fichier de base de données.
Par exemple, la commande suivante crée une base de données nommée sales
dans le C:\sqlite\db\
répertoire :
>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>
Code language: Shell Session (shell)
Afficher toutes les commandes disponibles et leurs objectifs
Pour afficher toutes les commandes disponibles et leur objectif, vous utilisez le .help
commande comme suit :
.help
Code language: Shell Session (shell)
Afficher les bases de données dans la connexion actuelle à la base de données
Pour afficher toutes les bases de données dans la connexion en cours, vous utilisez le .databases
commande. Les .databases
La commande affiche au moins une base de données avec le nom :main
.
Par exemple, la commande suivante affiche toutes les bases de données de la connexion en cours :
sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>
Code language: Shell Session (shell)
Pour ajouter une base de données supplémentaire dans la connexion en cours, vous utilisez l'instruction ATTACH DATABASE
. L'instruction suivante ajoute le chinook
base de données à la connexion actuelle.
sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Code language: Shell Session (shell)
Maintenant, si vous exécutez le .database
commande à nouveau, sqlite3 renvoie deux bases de données :main
et chinook
.
sqlite> .databases
seq name file
--- --------------- ---------------------
0 main c:\sqlite\db\sales.db
2 chinook c:\sqlite\db\chinook.db
Code language: Shell Session (shell)
Quitter l'outil sqlite3
Pour quitter le programme sqlite3, vous utilisez le .exit
commande.
sqlite>.exit
Code language: Shell Session (shell)
Afficher les tables dans une base de données
Pour afficher toutes les tables de la base de données courante, vous utilisez le .tables
commande. Les commandes suivantes ouvrent une nouvelle connexion de base de données au chinook
base de données et afficher les tables dans la base de données.
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> .tables
albums employees invoices playlists
artists genres media_types tracks
customers invoice_items playlist_track
sqlite>
Code language: Shell Session (shell)
Si vous voulez trouver des tables basées sur un modèle spécifique, vous utilisez le .table
commande de modèle. Le sqlite3 utilise le LIKE
opérateur pour la correspondance de modèles.
Par exemple, l'instruction suivante renvoie le tableau qui se termine par la chaîne es
.
sqlite> .table '%es'
employees genres invoices media_types
sqlite>
Code language: Shell Session (shell)
Afficher la structure d'un tableau
Pour afficher la structure d'une table, on utilise le .schema TABLE
commande. Le TABLE
l'argument pourrait être un modèle. Si vous l'omettez, le .schema
affichera les structures de toutes les tables.
La commande suivante montre la structure des albums
tableau.
sqlite> .schema albums
CREATE TABLE "albums"
(
[AlbumId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[Title] NVARCHAR(160) NOT NULL,
[ArtistId] INTEGER NOT NULL,
FOREIGN KEY ([ArtistId]) REFERENCES "artists" ([ArtistId])
ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE INDEX [IFK_AlbumArtistId] ON "albums" ([ArtistId]);
sqlite>
Code language: Shell Session (shell)
Pour afficher le schéma et le contenu du sqlite_stat
tables, vous utilisez le .fullschema
commande.
sqlite>.fullschema
Code language: CSS (css)
Afficher les index
Pour afficher tous les index de la base de données courante, vous utilisez le .indexes
commande comme suit :
sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeId
Code language: Shell Session (shell)
Pour afficher les index d'une table spécifique, vous utilisez le .indexes TABLE
commande. Par exemple, pour afficher les index des albums
table, vous utilisez la commande suivante :
sqlite> .indexes albums
IFK_AlbumArtistId
Code language: CSS (css)
Pour afficher les index des tables dont les noms se terminent par es
, vous utilisez un modèle de l'opérateur LIKE.
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
Code language: Shell Session (shell)
Enregistrer le résultat d'une requête dans un fichier
Pour enregistrer le résultat d'une requête dans un fichier, vous utilisez le .output FILENAME
commande. Une fois que vous avez émis le .output
commande, tous les résultats des requêtes suivantes seront enregistrés dans le fichier que vous avez spécifié dans le FILENAME
argument. Si vous souhaitez enregistrer le résultat de la prochaine requête unique uniquement dans le fichier, vous émettez le .once FILENAME
commande.
Pour afficher à nouveau le résultat de la requête sur la sortie standard, vous émettez le .output
commande sans arguments.
Les commandes suivantes sélectionnent le title
des albums
table et écrivez le résultat dans le albums.txt
fichier.
sqlite> .output albums.txt
sqlite> SELECT title FROM albums;
Code language: Shell Session (shell)
Exécuter des instructions SQL à partir d'un fichier
Supposons que nous ayons un fichier nommé commands.txt
dans le c:\sqlite\
dossier avec le contenu suivant :
SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;
Code language: Shell Session (shell)
Pour exécuter les instructions SQL dans le commands.txt
fichier, vous utilisez le .read FILENAME
commande comme suit :
sqlite> .mode column
sqlite> .header on
sqlite> .read c:/sqlite/commands.txt
AlbumId Title
---------- ----------------------
156 ...And Justice For All
257 20th Century Masters -
296 A Copland Celebration,
94 A Matter of Life and D
95 A Real Dead One
96 A Real Live One
285 A Soprano Inspired
139 A TempestadeTempestade
203 A-Sides
160 Ace Of Spades
Code language: Shell Session (shell)
Dans ce didacticiel, vous avez appris de nombreuses commandes utiles dans l'outil sqlite3 pour effectuer diverses tâches liées à la base de données SQLite.