SQLite
 sql >> Database >  >> RDS >> SQLite

Comandi SQLite

Riepilogo :in questo tutorial ti presenteremo i comandi SQLite più comunemente usati del programma a riga di comando sqlite3.

Il progetto SQLite fornisce un semplice strumento da riga di comando denominato sqlite3 (o sqlite3.exe su Windows) che consente di interagire con i database SQLite utilizzando istruzioni e comandi SQL.

Connetti a un database SQLite

Per avviare sqlite3, digita sqlite3 come segue:

>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)

Per impostazione predefinita, una sessione SQLite utilizza il database in memoria, quindi tutte le modifiche andranno perse al termine della sessione.

Per aprire un file di database, usa il .open FILENAME comando. La seguente istruzione apre il chinook.db banca dati:

sqlite> .open c:\sqlite\db\chinook.dbCode language: Shell Session (shell)

Se vuoi aprire un file di database specifico quando ti connetti al database di SQlite, usa il seguente comando:

>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)

Se avvii una sessione con un nome di database che non esiste, lo strumento sqlite3 creerà il file di database.

Ad esempio, il comando seguente crea un database denominato sales nel C:\sqlite\db\ directory:

>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)

Mostra tutti i comandi disponibili e i loro scopi

Per mostrare tutti i comandi disponibili e il loro scopo, usa il .help comando come segue:

.helpCode language: Shell Session (shell)

Mostra i database nella connessione al database corrente

Per mostrare tutti i database nella connessione corrente, usa .databases comando. I .databases comando visualizza almeno un database con il nome:main .

Ad esempio, il comando seguente mostra tutti i database della connessione corrente:

sqlite> .database
seq  name             file
---  ---------------  --------------------------
0    main             c:\sqlite\db\sales.db
sqlite>Code language: Shell Session (shell)

Per aggiungere un database aggiuntivo nella connessione corrente, utilizzare l'istruzione ATTACH DATABASE . La seguente istruzione aggiunge il chinook database alla connessione corrente.

sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;Code language: Shell Session (shell)

Ora se esegui .databases comando di nuovo, sqlite3 restituisce due database:main e 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)

Esci dallo strumento sqlite3

Per uscire dal programma sqlite3, usa .exit comando.

sqlite>.exitCode language: Shell Session (shell)

Mostra tabelle in un database

Per visualizzare tutte le tabelle nel database corrente, usa .tables comando. I seguenti comandi aprono una nuova connessione al database al chinook database e visualizzare le tabelle nel database.

>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)

Se vuoi trovare le tabelle in base a uno schema specifico, usa il .table comando modello. sqlite3 usa il LIKE operatore per la corrispondenza dei modelli.

Ad esempio, l'istruzione seguente restituisce la tabella che termina con la stringa es .

sqlite> .table '%es'
employees    genres       invoices     media_types
sqlite>Code language: Shell Session (shell)

Mostra la struttura di una tabella

Per visualizzare la struttura di una tabella, si utilizza il .schema TABLE comando. La TABLE l'argomento potrebbe essere un modello. Se lo ometti, il .schema il comando mostrerà le strutture di tutte le tabelle.

Il comando seguente mostra la struttura degli albums tabella.

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)

Per mostrare lo schema e il contenuto di sqlite_stat tabelle, usi il .fullschema comando.

sqlite>.fullschemaCode language: CSS (css)

Mostra indici

Per mostrare tutti gli indici del database corrente, usa .indexes comando come segue:

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)

Per mostrare gli indici di una tabella specifica, usa la .indexes TABLE comando. Ad esempio, per mostrare gli indici degli albums tabella, utilizzare il seguente comando:

sqlite> .indexes albums
IFK_AlbumArtistIdCode language: CSS (css)

Per mostrare gli indici delle tabelle i cui nomi terminano con es , utilizzi un pattern dell'operatore LIKE.

sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerIdCode language: Shell Session (shell)

Salva il risultato di una query in un file

Per salvare il risultato di una query in un file, utilizza il .output FILENAME comando. Dopo aver emesso il .output comando, tutti i risultati delle query successive verranno salvati nel file che hai specificato nel FILENAME discussione. Se vuoi salvare il risultato della successiva singola query solo nel file, emetti il ​​.once FILENAME comando.

Per visualizzare nuovamente il risultato della query sullo standard output, emetti .output comando senza argomenti.

I seguenti comandi selezionano il title dagli albums tabella e scrivi il risultato in albums.txt file.

sqlite> .output albums.txt
sqlite> SELECT title FROM albums;Code language: Shell Session (shell)

Esegui istruzioni SQL da un file

Supponiamo di avere un file chiamato commands.txt nel c:\sqlite\ cartella con il seguente contenuto:

SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;Code language: Shell Session (shell)

Per eseguire le istruzioni SQL nel commands.txt file, usi il .read FILENAME comando come segue:

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)

In questo tutorial, hai appreso molti comandi utili nello strumento sqlite3 per eseguire varie attività che riguardano il database SQLite.