Résumé : dans ce tutoriel, nous vous présenterons les commandes SQLite les plus couramment utilisées du programme de 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 en utilisant des instructions et des commandes SQL.
Connexion à une base de données SQLite
Pour lancer le sqlite3, vous tapez le sqlite3 comme suit :
Code language: Shell Session (shell)>sqlite3SQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.Connected to a transient in-memory database.Use ".open FILENAME" to reopen on a persistent database.sqlite>
Par défaut, une session SQLite utilise la base de données en mémoire, par conséquent, toutes les modifications auront disparu lorsque la session se termine.
Pour ouvrir un fichier de base de données, vous utilisez la commande .open FILENAME
. L’instruction suivante ouvre la chinook.db
base de données:
Code language: Shell Session (shell)sqlite> .open c:\sqlite\db\chinook.db
Si vous voulez 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 :
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\chinook.dbSQLite version 3.13.0 2016-05-18 10:57:30Enter ".help" for usage hints.sqlite>
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 répertoire C:\sqlite\db\
:
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\sales.dbSQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.sqlite>
Pour afficher toutes les commandes disponibles et leurs objectifs
Pour afficher toutes les commandes disponibles et leurs objectifs, vous utilisez la commande .help
comme suit :
Code language: Shell Session (shell).help
Show databases in the current database connection
Pour afficher toutes les bases de données dans la connexion actuelle, vous utilisez la commande .databases
. La commande .databases
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 actuelle:
Code language: Shell Session (shell)
Pour ajouter une base de données supplémentaire dans la connexion actuelle, vous utilisez l’instruction ATTACH DATABASE
. L’instruction suivante ajoute la base de données chinook
à la connexion actuelle.
Code language: Shell Session (shell)sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Maintenant, si vous exécutez à nouveau la commande .database
, le sqlite3 renvoie deux bases de données : main
et chinook
.
Code language: Shell Session (shell)sqlite> .databasesseq name file--- --------------- ---------------------0 main c:\sqlite\db\sales.db2 chinook c:\sqlite\db\chinook.db
Quitter l’outil sqlite3
Pour quitter le programme sqlite3, vous utilisez la commande .exit
.
Code language: Shell Session (shell)sqlite>.exit
Afficher les tables d’une base de données
Pour afficher toutes les tables de la base de données actuelle, vous utilisez la commande .tables
. Les commandes suivantes ouvrent une nouvelle connexion à la base de données chinook
et affichent les tables de la base de données.
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\chinook.dbSQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.sqlite> .tablesalbums employees invoices playlistsartists genres media_types trackscustomers invoice_items playlist_tracksqlite>
Si vous voulez trouver des tables en fonction d’un motif spécifique, vous utilisez la commande .table
motif. Le sqlite3 utilise l’opérateur LIKE
pour la correspondance des motifs.
Par exemple, l’instruction suivante renvoie la table qui se termine par la chaîne es
.
Code language: Shell Session (shell)sqlite> .table '%es'employees genres invoices media_typessqlite>
Afficher la structure d’un tableau
Pour afficher la structure d’un tableau, vous utilisez la commande .schema TABLE
. L’argument TABLE
pourrait être un motif. Si vous l’omettez, la commande .schema
montrera les structures de toutes les tables.
La commande suivante montre la structure de la table albums
.
Code language: Shell Session (shell)sqlite> .schema albumsCREATE TABLE "albums"( INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NVARCHAR(160) NOT NULL, INTEGER NOT NULL, FOREIGN KEY () REFERENCES "artists" () ON DELETE NO ACTION ON UPDATE NO ACTION);CREATE INDEX ON "albums" ();sqlite>
Pour montrer le schéma et le contenu des tables sqlite_stat
, vous utilisez la commande .fullschema
.
Code language: CSS (css)sqlite>.fullschema
Show indexes
Pour afficher tous les index de la base de données actuelle, vous utilisez la commande .indexes
comme suit :
Code language: Shell Session (shell)sqlite> .indexesIFK_AlbumArtistIdIFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
Pour afficher les index d’une table spécifique, vous utilisez la commande .indexes TABLE
. Par exemple, pour afficher les index de la table albums
, vous utilisez la commande suivante :
Code language: CSS (css)sqlite> .indexes albumsIFK_AlbumArtistId
Pour afficher les index des tables dont le nom se termine par es
, vous utilisez un motif de l’opérateur LIKE.
Code language: Shell Session (shell)sqlite> .indexes %esIFK_EmployeeReportsToIFK_InvoiceCustomerId
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 la commande .output FILENAME
. Une fois que vous avez émis la commande .output
, tous les résultats des requêtes suivantes seront enregistrés dans le fichier que vous avez spécifié dans l’argument FILENAME
. Si vous voulez enregistrer le résultat de la prochaine requête unique uniquement dans le fichier, vous émettez la commande .once FILENAME
.
Pour afficher à nouveau le résultat de la requête sur la sortie standard, vous émettez la commande .output
sans arguments.
Les commandes suivantes sélectionnent la title
de la table albums
et écrivent le résultat dans le fichier albums.txt
.
Code language: Shell Session (shell)sqlite> .output albums.txtsqlite> SELECT title FROM albums;
Exécuter des instructions SQL à partir d’un fichier
Supposons que nous ayons un fichier nommé commands.txt
dans le dossier c:\sqlite\
avec le contenu suivant :
Code language: Shell Session (shell)SELECT albumid, titleFROM albumsORDER BY titleLIMIT 10;
Pour exécuter les instructions SQL dans le fichier commands.txt
, vous utilisez la commande .read FILENAME
comme suit :
Code language: Shell Session (shell)sqlite> .mode columnsqlite> .header onsqlite> .read c:/sqlite/commands.txtAlbumId Title---------- ----------------------156 ...And Justice For All257 20th Century Masters -296 A Copland Celebration,94 A Matter of Life and D95 A Real Dead One96 A Real Live One285 A Soprano Inspired139 A TempestadeTempestade203 A-Sides160 Ace Of Spades
Dans ce tutoriel, vous avez appris de nombreuses commandes utiles dans l’outil sqlite3 pour effectuer diverses tâches qui concernent la base de données SQLite.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.