Comandos SQLite

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 FILENAMEcomando. A seguinte instrução abre o chinook.dbbanco de dados:

sqlite> .open c:\sqlite\db\chinook.dbLinguagem 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 salesno 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 .helpcomando da seguinte maneira:

.helpLinguagem 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 .databasescomando. O .databasescomando 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 chinookbanco 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 .databasecomando novamente, o sqlite3 retornará dois bancos de dados: maine 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 .exitcomando.

sqlite>.exitLinguagem 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  .tablescomando. Os comandos a seguir abrem uma nova conexão de banco de dados com o chinookbanco 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 .tablecomando 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 TABLEcomando. O TABLEargumento pode ser um padrão. Se omitir, o .schemacomando mostrará as estruturas de todas as tabelas.

O comando a seguir mostra a estrutura da albumstabela.

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_stattabelas, você usa o .fullschemacomando.

sqlite>.fullschemaLinguagem de código:  CSS  ( css )

Mostrar índices

Para mostrar todos os índices do banco de dados atual, você usa o .indexescomando da seguinte forma:

sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeIdLinguagem de código:  Sessão Shell  ( shell )

Para mostrar os índices de uma tabela específica, você usa o .indexes TABLEcomando. Por exemplo, para mostrar os índices da albumstabela, use o seguinte comando:

sqlite> .indexes albums
IFK_AlbumArtistIdLinguagem 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_InvoiceCustomerIdLinguagem 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 FILENAMEcomando. Depois de emitir o .output comando, todos os resultados das consultas subsequentes serão salvos no arquivo especificado no FILENAMEargumento. Se quiser salvar o resultado da próxima consulta apenas no arquivo, emita o .once FILENAMEcomando.

Para exibir novamente o resultado da consulta na saída padrão, emita o .outputcomando sem argumentos.

Os comandos a seguir selecionam na titletabela albumse gravam o resultado no albums.txtarquivo.

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.txtna 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.txtarquivo, use o .read FILENAMEcomando 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 SpadesLinguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *