Sommario: in questo tutorial, vi presenteremo i comandi SQLite più comunemente usati del programma a riga di comando sqlite3.
Il progetto SQLite fornisce un semplice strumento a riga di comando chiamato sqlite3 (o sqlite3.exe su Windows) che permette di interagire con i database SQLite usando istruzioni e comandi SQL.
Connettersi a un database SQLite
Per avviare sqlite3, si digita sqlite3 come segue:
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>
Di default, una sessione SQLite utilizza il database in-memory, quindi, tutte le modifiche saranno sparite quando la sessione finisce.
Per aprire un file di database, si usa il comando .open FILENAME
. La seguente dichiarazione apre il chinook.db
database:
Code language: Shell Session (shell)sqlite> .open c:\sqlite\db\chinook.db
Se volete aprire un file di database specifico quando vi collegate al database SQlite, usate il seguente comando:
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>
Se si avvia una sessione con un nome di database che non esiste, lo strumento sqlite3 creerà il file di database.
Per esempio, il seguente comando crea un database chiamato sales
nella directory 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>
Mostra tutti i comandi disponibili e il loro scopo
Per mostrare tutti i comandi disponibili e il loro scopo, si usa il comando .help
come segue:
Code language: Shell Session (shell).help
Mostra i database nella connessione corrente
Per mostrare tutti i database nella connessione corrente, si usa il comando .databases
. Il comando .databases
visualizza almeno un database con il nome: main
.
Per esempio, il seguente comando mostra tutti i database della connessione corrente:
Code language: Shell Session (shell)
Per aggiungere un ulteriore database nella connessione corrente, si usa la dichiarazione ATTACH DATABASE
. L’istruzione seguente aggiunge il database chinook
alla connessione corrente.
Code language: Shell Session (shell)sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Ora se si esegue nuovamente il comando .database
, sqlite3 restituisce due database: main
e chinook
.
Code language: Shell Session (shell)sqlite> .databasesseq name file--- --------------- ---------------------0 main c:\sqlite\db\sales.db2 chinook c:\sqlite\db\chinook.db
Esci dallo strumento sqlite3
Per uscire dal programma sqlite3, si usa il comando .exit
.
Code language: Shell Session (shell)sqlite>.exit
Mostra le tabelle in un database
Per visualizzare tutte le tabelle nel database corrente, si usa il comando .tables
. I seguenti comandi aprono una nuova connessione al database chinook
e visualizzano le tabelle nel database.
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>
Se si desidera trovare le tabelle basate su un modello specifico, si usa il comando .table
pattern. sqlite3 usa l’operatore LIKE
per il pattern matching.
Per esempio, la seguente dichiarazione restituisce la tabella che finisce con la stringa es
.
Code language: Shell Session (shell)sqlite> .table '%es'employees genres invoices media_typessqlite>
Mostra la struttura di una tabella
Per visualizzare la struttura di una tabella, si usa il comando .schema TABLE
. L’argomento TABLE
potrebbe essere un modello. Se lo ometti, il comando .schema
mostrerà le strutture di tutte le tabelle.
Il seguente comando mostra la struttura della tabella 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>
Per mostrare lo schema e il contenuto delle tabelle sqlite_stat
, si usa il comando .fullschema
.
Code language: CSS (css)sqlite>.fullschema
Mostra indici
Per mostrare tutti gli indici del database corrente, si usa il comando .indexes
come segue:
Code language: Shell Session (shell)sqlite> .indexesIFK_AlbumArtistIdIFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
Per mostrare gli indici di una specifica tabella, si usa il comando .indexes TABLE
. Per esempio, per mostrare gli indici della tabella albums
, si usa il seguente comando:
Code language: CSS (css)sqlite> .indexes albumsIFK_AlbumArtistId
Per mostrare gli indici delle tabelle i cui nomi finiscono con es
, si usa un pattern dell’operatore LIKE.
Code language: Shell Session (shell)sqlite> .indexes %esIFK_EmployeeReportsToIFK_InvoiceCustomerId
Salvare il risultato di una query in un file
Per salvare il risultato di una query in un file, si usa il comando .output FILENAME
. Una volta emesso il comando .output
, tutti i risultati delle query successive saranno salvati nel file specificato nell’argomento FILENAME
. Se vuoi salvare solo il risultato della prossima singola query nel file, dai il comando .once FILENAME
.
Per visualizzare nuovamente il risultato della query sullo standard output, dai il comando .output
senza argomenti.
I seguenti comandi selezionano il title
dalla tabella albums
e scrivono il risultato nel file albums.txt
.
Code language: Shell Session (shell)sqlite> .output albums.txtsqlite> SELECT title FROM albums;
Eseguire istruzioni SQL da un file
Supponiamo di avere un file chiamato commands.txt
nella cartella c:\sqlite\
con il seguente contenuto:
Code language: Shell Session (shell)SELECT albumid, titleFROM albumsORDER BY titleLIMIT 10;
Per eseguire le istruzioni SQL nel file commands.txt
, si usa il comando .read FILENAME
come segue:
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
In questo tutorial, hai imparato molti comandi utili nello strumento sqlite3 per eseguire vari compiti che riguardano il database SQLite.
- Questo tutorial è stato utile?
- SìNo