SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Comandos SQLite


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.