Sumário: neste tutorial, vamos apresentar-lhe os comandos SQLite mais utilizados do programa de linha de comando sqlite3.
O projecto SQLite fornece uma ferramenta de linha de comando simples chamada sqlite3 (ou sqlite3.exe no Windows) que lhe permite interagir com as bases de dados SQLite utilizando instruções e comandos SQLite.
Conectar a uma base de dados SQLite
Para iniciar o sqlite3, digite o sqlite3 da seguinte forma:
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>
Por defeito, uma sessão SQLite utiliza a base de dados in-memory, portanto, todas as alterações serão eliminadas quando a sessão terminar.
 Para abrir um ficheiro de base de dados, utiliza-se o comando .open FILENAME. A seguinte declaração abre o chinook.db base de dados:
Code language: Shell Session (shell)sqlite> .open c:\sqlite\db\chinook.db
Se quiser abrir um ficheiro de base de dados específico quando se liga à base de dados SQlite, usa o seguinte 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 iniciar uma sessão com um nome de base de dados que não existe, a ferramenta sqlite3 criará o ficheiro de base de dados.
 Por exemplo, o seguinte comando cria uma base de dados com o nome sales no directório 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>
Mostrar todos os comandos disponíveis e as suas finalidades
Para mostrar todos os comandos disponíveis e as suas finalidades, usa-se o comando .help como se segue:
Code language: Shell Session (shell).help
Mostrar bases de dados na ligação actual da base de dados
Para mostrar todas as bases de dados na ligação actual, usa o comando .databases. O comando .databases mostra pelo menos uma base de dados com o nome: main.
Por exemplo, o seguinte comando mostra todas as bases de dados da ligação actual:
Code language: Shell Session (shell)
 Para adicionar uma base de dados adicional na ligação actual, usa-se a declaração ATTACH DATABASE. A seguinte declaração adiciona o comando chinook base de dados à ligação actual.
Code language: Shell Session (shell)sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
 Agora se executar o comando .database novamente, o sqlite3 devolve duas bases de dados: 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
Sair da ferramenta sqlite3
 Para sair do programa sqlite3, usa-se o comando .exit.
Code language: Shell Session (shell)sqlite>.exit
Mostrar tabelas numa base de dados
Para exibir todas as tabelas da base de dados actual, usa o comando .tables. Os comandos seguintes abrem uma nova ligação de base de dados ao comando chinook base de dados e exibem as tabelas na base de dados.
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 quiser encontrar tabelas baseadas num padrão específico, usa o comando .table padrão. O sqlite3 usa o comando LIKE operador para correspondência de padrões.
 Por exemplo, a seguinte declaração devolve a tabela que termina com a string es.
Code language: Shell Session (shell)sqlite> .table '%es'employees genres invoices media_typessqlite>
Mostrar a estrutura de uma tabela
Para mostrar a estrutura de uma tabela, usa-se o comando .schema TABLE. O argumento TABLE poderia ser um padrão. Se omitir, o comando .schema mostrará as estruturas de todas as tabelas.
 O comando seguinte mostra a estrutura da tabela 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>
 Para mostrar o esquema e o conteúdo das tabelas sqlite_stat, utiliza-se o comando .fullschema.
Code language: CSS (css)sqlite>.fullschema
Mostrar índices
Para mostrar todos os índices da base de dados actual, usa o comando .indexes como se segue:
Code language: Shell Session (shell)sqlite> .indexesIFK_AlbumArtistIdIFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
 Para mostrar os índices de uma tabela específica, usa o comando .indexes TABLE. Por exemplo, para mostrar os índices da tabela albums, usa-se o seguinte comando:
Code language: CSS (css)sqlite> .indexes albumsIFK_AlbumArtistId
 Para mostrar os índices das tabelas cujos nomes terminam com es, usa-se um padrão do operador LIKE.
Code language: Shell Session (shell)sqlite> .indexes %esIFK_EmployeeReportsToIFK_InvoiceCustomerId
Guardar o resultado de uma consulta num ficheiro
 Para guardar o resultado de uma consulta num ficheiro, usa o comando .output FILENAME. Uma vez emitido o comando .output command, todos os resultados das consultas subsequentes serão guardados no ficheiro que especificou no argumento FILENAME. Se quiser guardar o resultado da próxima consulta única apenas no ficheiro, emitirá o comando .once FILENAME comando.
 Para mostrar novamente o resultado da consulta à saída padrão, emitirá o comando .output sem argumentos.
Os seguintes comandos seleccionam o title a partir do albums tabela e escrevem o resultado no ficheiro albums.txt.
Code language: Shell Session (shell)sqlite> .output albums.txtsqlite> SELECT title FROM albums;
Executar instruções SQL de um ficheiro
Se tivermos um ficheiro chamado commands.txt na pasta c:\sqlite\ com o seguinte conteúdo:
Code language: Shell Session (shell)SELECT albumid, titleFROM albumsORDER BY titleLIMIT 10;
 Para executar as instruções SQL no ficheiro commands.txt, utiliza-se o comando .read FILENAME como se 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
Neste tutorial, aprendeu muitos comandos úteis na ferramenta sqlite3 para executar várias tarefas que lidam com a base de dados SQLite.