Resumo : neste tutorial, apresentaremos os comandos SQLite mais comumente usados do programa de linha de comando sqlite3.
O projeto SQLite oferece uma ferramenta de linha de comando simples chamada sqlite3 (ou sqlite3.exe no Windows) que permite interagir com os bancos de dados SQLite usando instruções e comandos SQL.
Conecte-se a um banco de dados SQLite
Para iniciar o sqlite3, digite sqlite3 da seguinte maneira:
>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>
Linguagem de código: Sessão Shell ( shell )
Por padrão, uma sessão SQLite usa o banco de dados na memória, portanto, todas as alterações desaparecerão quando a sessão terminar.
Para abrir um arquivo de banco de dados, você usa o .open FILENAME
comando. A seguinte instrução abre o chinook.db
banco de dados:
sqlite> .open c:\sqlite\db\chinook.db
Linguagem de código: Sessão Shell ( shell )
Se você deseja abrir um arquivo de banco de dados específico ao se conectar ao banco de dados SQLite, use o seguinte comando:
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>
Linguagem de código: Sessão Shell ( shell )
Se você iniciar uma sessão com um nome de banco de dados que não existe, a ferramenta sqlite3 criará o arquivo de banco de dados.
Por exemplo, o comando a seguir cria um banco de dados nomeado sales
no C:\sqlite\db\
diretório:
>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>
Linguagem de código: Sessão Shell ( shell )
Mostrar todos os comandos disponíveis e suas finalidades
Para mostrar todos os comandos disponíveis e sua finalidade, use o .help
comando da seguinte maneira:
.help
Linguagem de código: Sessão Shell ( shell )
Mostrar bancos de dados na conexão de banco de dados atual
Para mostrar todos os bancos de dados na conexão atual, você usa o .databases
comando. O .databases
comando exibe pelo menos um banco de dados com o nome: main
.
Por exemplo, o comando a seguir mostra todos os bancos de dados da conexão atual:
sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>
Linguagem de código: Sessão Shell ( shell )
Para adicionar um banco de dados adicional na conexão atual, você usa a instrução ATTACH DATABASE
. A instrução a seguir adiciona o chinook
banco de dados à conexão atual.
sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Linguagem de código: Sessão Shell ( shell )
Agora, se você executar o .database
comando novamente, o sqlite3 retornará dois bancos de dados: main
e chinook
.
sqlite> .databases
seq name file
--- --------------- ---------------------
0 main c:\sqlite\db\sales.db
2 chinook c:\sqlite\db\chinook.db
Linguagem de código: Sessão Shell ( shell )
Sair da ferramenta sqlite3
Para sair do programa sqlite3, você usa o .exit
comando.
sqlite>.exit
Linguagem de código: Sessão Shell ( shell )
Mostrar tabelas em um banco de dados
Para exibir todas as tabelas no banco de dados atual, você usa o .tables
comando. Os comandos a seguir abrem uma nova conexão de banco de dados com o chinook
banco de dados e exibem as tabelas no banco de dados.
>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>
Linguagem de código: Sessão Shell ( shell )
Se quiser encontrar tabelas com base em um padrão específico, use o .table
comando padrão. O sqlite3 usa o LIKE
operador para correspondência de padrões.
Por exemplo, a instrução a seguir retorna a tabela que termina com a string es
.
sqlite> .table '%es'
employees genres invoices media_types
sqlite>
Linguagem de código: Sessão Shell ( shell )
Mostre a estrutura de uma tabela
Para exibir a estrutura de uma tabela, você usa o .schema TABLE
comando. O TABLE
argumento pode ser um padrão. Se omitir, o .schema
comando mostrará as estruturas de todas as tabelas.
O comando a seguir mostra a estrutura da albums
tabela.
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>
Linguagem de código: Sessão Shell ( shell )
Para mostrar o esquema e o conteúdo das sqlite_stat
tabelas, você usa o .fullschema
comando.
sqlite>.fullschema
Linguagem de código: CSS ( css )
Mostrar índices
Para mostrar todos os índices do banco de dados atual, você usa o .indexes
comando da seguinte forma:
sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeId
Linguagem de código: Sessão Shell ( shell )
Para mostrar os índices de uma tabela específica, você usa o .indexes TABLE
comando. Por exemplo, para mostrar os índices da albums
tabela, use o seguinte comando:
sqlite> .indexes albums
IFK_AlbumArtistId
Linguagem de código: CSS ( css )
Para mostrar os índices das tabelas cujos nomes terminam com es
, você usa um padrão do operador LIKE .
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
Linguagem de código: Sessão Shell ( shell )
Salve o resultado de uma consulta em um arquivo
Para salvar o resultado de uma consulta em um arquivo, você usa o .output FILENAME
comando. Depois de emitir o .output
comando, todos os resultados das consultas subsequentes serão salvos no arquivo especificado no FILENAME
argumento. Se quiser salvar o resultado da próxima consulta apenas no arquivo, emita o .once FILENAME
comando.
Para exibir novamente o resultado da consulta na saída padrão, emita o .output
comando sem argumentos.
Os comandos a seguir selecionam na title
tabela albums
e gravam o resultado no albums.txt
arquivo.
sqlite> .output albums.txt
sqlite> SELECT title FROM albums;
Linguagem de código: Sessão Shell ( shell )
Execute instruções SQL de um arquivo
Suponha que temos um arquivo nomeado commands.txt
na c:\sqlite\
pasta com o seguinte conteúdo:
SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;
Linguagem de código: Sessão Shell ( shell )
Para executar as instruções SQL no commands.txt
arquivo, use o .read FILENAME
comando da seguinte forma:
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 Spades
Linguagem de código: Sessão Shell ( shell )
Neste tutorial, você aprendeu muitos comandos úteis na ferramenta sqlite3 para executar diversas tarefas relacionadas ao banco de dados SQLite.