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.dbCode 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:.helpCode 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>.exitCode 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>.fullschemaCode 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_TrackMediaTypeIdCode 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_AlbumArtistIdCode 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_InvoiceCustomerIdCode 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 SpadesCode 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.