Resumo :neste tutorial, apresentaremos os comandos SQLite mais 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.
Conectar a um banco de dados SQLite
Para iniciar o sqlite3, digite o sqlite3 da seguinte forma:
>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)
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 instrução a seguir abre o chinook.db
base de dados:sqlite> .open c:\sqlite\db\chinook.db
Code language: Shell Session (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>
Code language: Shell Session (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 chamado
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>
Code language: Shell Session (shell)
Mostrar todos os comandos disponíveis e suas finalidades
Para mostrar todos os comandos disponíveis e suas finalidades, use o
.help
comando da seguinte forma:.help
Code language: Shell Session (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. Os .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>
Code language: Shell Session (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 para a conexão atual. sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Code language: Shell Session (shell)
Agora, se você executar o
.database
comando novamente, o sqlite3 retorna 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
Code language: Shell Session (shell)
Sair da ferramenta sqlite3
Para sair do programa sqlite3, você usa o
.exit
comando. sqlite>.exit
Code language: Shell Session (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 para o chinook
banco de dados e exibir 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>
Code language: Shell Session (shell)
Se você 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>
Code language: Shell Session (shell)
Mostrar a estrutura de uma tabela
Para exibir a estrutura de uma tabela, você usa o
.schema TABLE
comando. A TABLE
argumento pode ser um padrão. Se você omitir, o .schema
O comando mostrará as estruturas de todas as tabelas. O comando a seguir mostra a estrutura dos
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>
Code language: Shell Session (shell)
Para mostrar o esquema e o conteúdo do
sqlite_stat
tabelas, você usa o .fullschema
comando. sqlite>.fullschema
Code language: 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
Code language: Shell Session (shell)
Para mostrar os índices de uma tabela específica, você usa o
.indexes TABLE
comando. Por exemplo, para mostrar índices dos albums
tabela, você usa o seguinte comando:sqlite> .indexes albums
IFK_AlbumArtistId
Code language: 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
Code language: Shell Session (shell)
Salvar o resultado de uma consulta em um arquivo
Para salvar o resultado de uma consulta em um arquivo, use o
.output FILENAME
comando. Depois de emitir o .output
comando, todos os resultados das consultas subsequentes serão salvos no arquivo que você especificou no FILENAME
argumento. Se você quiser salvar o resultado da próxima consulta única apenas no arquivo, emita o .once FILENAME
comando. Para exibir o resultado da consulta na saída padrão novamente, você emite o
.output
comando sem argumentos. Os comandos a seguir selecionam o
title
dos albums
tabela e grave o resultado no albums.txt
Arquivo. sqlite> .output albums.txt
sqlite> SELECT title FROM albums;
Code language: Shell Session (shell)
Executar instruções SQL de um arquivo
Suponha que temos um arquivo chamado
commands.txt
no c:\sqlite\
pasta com o seguinte conteúdo:SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;
Code language: Shell Session (shell)
Para executar as instruções SQL no
commands.txt
arquivo, você usa 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
Code language: Shell Session (shell)
Neste tutorial, você aprendeu muitos comandos úteis na ferramenta sqlite3 para executar várias tarefas que lidam com o banco de dados SQLite.