SQLite
 sql >> Base de données >  >> RDS >> SQLite

Commandes SQLite

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.dbCode 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 :

.helpCode 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>.exitCode 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>.fullschemaCode 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_TrackMediaTypeIdCode 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_AlbumArtistIdCode 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_InvoiceCustomerIdCode 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 SpadesCode 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.