SQL Comandos de Ponto do sqlite3

Os comandos de ponto são os comandos que começam com . no programa sqlite3, o terminal do SQLite: .tables, .schema, .mode… Eles não são SQL: são ordens para o próprio programa, para mostrar o banco, mudar o jeito de exibir os resultados, ler e gravar arquivos. Esta página lista todos os do sqlite3 3.50.4, com a descrição original do .help traduzida e as saídas reais do terminal da Ana. A aula que ensina os principais é Comandos de Ponto.

As regras dos comandos de ponto
  • Começam com . no começo da linha, e vão um por linha.
  • Não levam ; no fim (o ; é do SQL).
  • Só existem no programa sqlite3. No editor do guia, no PHP, no Python e em qualquer outro programa, eles não funcionam: o editor responde near ".": syntax error.
  • Digitou um que não existe? O sqlite3 responde Error: unknown command or invalid arguments: "tabels". Enter ".help" for help (veja Erros Comuns).
  • Quase todos podem ser abreviados, desde que não fiquem ambíguos: .tab funciona como .tables. Nesta página, use sempre o nome completo.

Ver o banco

ComandoO que fazExemploAula
.tablesLista as tabelas (e views). Com um padrão do LIKE, só as que casam..tables c%Comandos de Ponto
.schemaMostra os CREATE de tudo, ou só do que casar com o padrão. --indent organiza o texto..schema categoriasCREATE TABLE
.indexesLista os índices (de uma tabela, ou de todas)..indexes produtosÍndices
.databasesOs bancos abertos e o arquivo de cada um..databases
.fullschemaComo o .schema, mais as tabelas de estatística do ANALYZE..fullschemaVACUUM e ANALYZE
.dbinfoInformações do arquivo: tamanho da página, número de páginas, codificação….dbinfoPRAGMAs Úteis
.showMostra as configurações atuais do terminal (modo, cabeçalhos, separadores…)..show
$ sqlite3 loja.db
SQLite version 3.50.4 2025-07-30 19:33:53
Enter ".help" for usage hints.
sqlite> .tables
categorias    fornecedores  itens_pedido  produtos
clientes      funcionarios  pedidos
sqlite> .tables c%
categorias  clientes
sqlite> .schema categorias
CREATE TABLE categorias (
    id        INTEGER PRIMARY KEY,
    nome      TEXT NOT NULL,
    descricao TEXT
);
sqlite> .indexes
sqlite_autoindex_itens_pedido_1
sqlite> .databases
main: /home/ana/loja.db r/w

O único índice do banco, sqlite_autoindex_itens_pedido_1, foi criado sozinho pelo SQLite para a chave primária composta de itens_pedido. O r/w do .databases quer dizer read/write, "leitura e escrita".

sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:
    filename: loja.db

Mudar a exibição

ComandoO que fazExemplo
.mode MODOEscolhe o formato da saída (tabela Os modos). Sem o modo, mostra o atual..mode box
.headers on|offLiga ou desliga a linha com os nomes das colunas (nos modos list, csv, tabs…)..headers on
.width N1 N2 …Largura mínima de cada coluna nos modos em colunas. Sem números, volta ao automático..width 5 12
.nullvalue TEXTOO que mostrar no lugar de NULL (o padrão é nada)..nullvalue (vazio)
.separator COL ?LINHA?O separador de colunas (e de linhas) dos modos list e csv..separator " ; "
.print TEXTOEscreve o texto, do jeito que está..print Olá, Ana!
.echo on|offRepete cada comando antes do resultado (bom em scripts)..echo on
.timer on|offMostra quanto tempo cada comando levou..timer on
.changes on|offMostra quantas linhas cada comando mudou..changes on
.eqp on|off|fullMostra o plano de execução (EXPLAIN QUERY PLAN) antes de cada consulta..eqp on
.prompt PRINCIPAL CONTINUAÇÃOTroca os prompts sqlite> e ...>..prompt "loja> " " > "
sqlite> SELECT id, nome FROM categorias LIMIT 3;
1|Papelaria
2|Eletrônicos
3|Casa e Cozinha
sqlite> .headers on
sqlite> SELECT id, nome FROM categorias LIMIT 3;
id|nome
1|Papelaria
2|Eletrônicos
3|Casa e Cozinha
sqlite> .mode box
sqlite> .nullvalue (vazio)
sqlite> SELECT id, nome, email FROM clientes WHERE id IN (6, 7);
┌────┬───────────────────┬────────────────────────────────┐
│ id │       nome        │             email              │
├────┼───────────────────┼────────────────────────────────┤
│ 6  │ Rafael Monteiro   │ rafael.monteiro@exemplo.com.br │
│ 7  │ Luís Otávio Brito │ (vazio)                        │
└────┴───────────────────┴────────────────────────────────┘
sqlite> .print Olá, Ana!
Olá, Ana!
sqlite> .timer on
sqlite> SELECT count(*) FROM itens_pedido;
┌──────────┐
│ count(*) │
├──────────┤
│ 220      │
└──────────┘
Run Time: real 0.000 user 0.000031 sys 0.000000
sqlite> .timer off
sqlite> .changes on
sqlite> UPDATE produtos SET estoque = estoque WHERE categoria_id = 1;
changes: 6   total_changes: 6

Mais dois, num modo em colunas: o .width alarga as colunas, e o .eqp on mostra, antes do resultado, como o SQLite vai buscar os dados (aqui, direto pela chave primária; mais em EXPLAIN QUERY PLAN):

sqlite> .width 5 12
sqlite> SELECT id, nome FROM categorias LIMIT 2;
┌───────┬──────────────┐
│  id   │     nome     │
├───────┼──────────────┤
│ 1     │ Papelaria    │
│ 2     │ Eletrônicos  │
└───────┴──────────────┘
sqlite> .width
sqlite> .eqp on
sqlite> SELECT nome FROM clientes WHERE id = 3;
QUERY PLAN
`--SEARCH clientes USING INTEGER PRIMARY KEY (rowid=?)
┌───────────────────┐
│       nome        │
├───────────────────┤
│ Ana Beatriz Sousa │
└───────────────────┘

Os modos do .mode

Todos com a mesma consulta, SELECT id, nome FROM categorias LIMIT 3; (ou LIMIT 2), e .headers on:

ModoDescrição do .help modeEm português / para quê
listValues delimited by "|"Valores separados por |. O padrão. É também o formato da "saída canônica" das missões do guia.
boxTables using unicode box-drawing charactersTabela com bordas de linha contínua. O mais bonito para ler.
tableASCII-art tableTabela com bordas de +, - e | (funciona em qualquer terminal).
columnOutput in columns. (See .width)Colunas alinhadas, sem bordas.
markdownMarkdown table formatTabela pronta para colar num arquivo Markdown (GitHub, por exemplo).
csvComma-separated valuesValores separados por vírgula, para planilhas (veja Importar e Exportar CSV).
tabsTab-separated valuesSeparados por tabulação.
lineOne value per lineUm valor por linha, coluna = valor. Bom para linhas com muitas colunas.
jsonResults in a JSON arrayUma lista JSON de objetos.
insert TABELASQL insert statements for TABLECada linha vira um INSERT, para copiar dados para outro banco.
quoteEscape answers as for SQLCada valor escrito como no SQL (texto entre aspas simples).
htmlHTML <table> codeLinhas de uma tabela HTML.
qboxShorthand for "box --wrap 60 --quote"Como o box, quebrando textos longos em 60 caracteres e com os valores entre aspas.
asciiColumns/rows delimited by 0x1F and 0x1ESeparadores invisíveis (caracteres de controle), para trocar dados com programas.
tclTCL list elementsListas da linguagem Tcl.
sqlite> .mode column
sqlite> SELECT id, nome FROM categorias LIMIT 3;
id  nome
--  --------------
1   Papelaria
2   Eletrônicos
3   Casa e Cozinha
sqlite> .mode box
sqlite> SELECT id, nome FROM categorias LIMIT 3;
┌────┬────────────────┐
│ id │      nome      │
├────┼────────────────┤
│ 1  │ Papelaria      │
│ 2  │ Eletrônicos    │
│ 3  │ Casa e Cozinha │
└────┴────────────────┘
sqlite> .mode table
sqlite> SELECT id, nome FROM categorias LIMIT 3;
+----+----------------+
| id |      nome      |
+----+----------------+
| 1  | Papelaria      |
| 2  | Eletrônicos    |
| 3  | Casa e Cozinha |
+----+----------------+
sqlite> .mode markdown
sqlite> SELECT id, nome FROM categorias LIMIT 3;
| id |      nome      |
|----|----------------|
| 1  | Papelaria      |
| 2  | Eletrônicos    |
| 3  | Casa e Cozinha |
sqlite> .mode csv
sqlite> SELECT id, nome FROM categorias LIMIT 3;
id,nome
1,Papelaria
2,"Eletrônicos"
3,"Casa e Cozinha"

Repare no csv: o sqlite3 pôs aspas em "Eletrônicos" e "Casa e Cozinha". Ele põe aspas nos textos com espaço, com acento ou com caracteres especiais, por segurança; qualquer planilha lê os dois jeitos. Os outros modos:

sqlite> .mode line
sqlite> SELECT id, nome FROM categorias LIMIT 2;
   id = 1
 nome = Papelaria

   id = 2
 nome = Eletrônicos
sqlite> .mode json
sqlite> SELECT id, nome FROM categorias LIMIT 2;
[{"id":1,"nome":"Papelaria"},
{"id":2,"nome":"Eletrônicos"}]
sqlite> .mode insert categorias
sqlite> SELECT id, nome FROM categorias LIMIT 2;
INSERT INTO categorias(id,nome) VALUES(1,'Papelaria');
INSERT INTO categorias(id,nome) VALUES(2,'Eletrônicos');
sqlite> .mode quote
sqlite> SELECT id, nome FROM categorias LIMIT 2;
'id','nome'
1,'Papelaria'
2,'Eletrônicos'
sqlite> .mode html
sqlite> SELECT id, nome FROM categorias LIMIT 1;
<TR><TH>id</TH>
<TH>nome</TH>
</TR>
<TR><TD>1</TD>
<TD>Papelaria</TD>
</TR>
sqlite> .mode list
sqlite> .separator " ; "
sqlite> SELECT id, nome FROM categorias LIMIT 2;
id ; nome
1 ; Papelaria
2 ; Eletrônicos
sqlite> .separator "|"
sqlite> .mode
current output mode: list --escape ascii

Arquivos: ler, gravar, copiar

ComandoO que fazExemploAula
.once ARQUIVOManda a saída do próximo comando para um arquivo..once categorias.csvImportar e Exportar CSV
.output ARQUIVOManda toda a saída para o arquivo, até um .output sem nada (que volta para a tela)..output fornecedores.txtImportar e Exportar CSV
.import ARQUIVO TABELALê um arquivo (CSV, com --csv) para dentro de uma tabela. Se a tabela não existe, é criada, e a 1ª linha dá os nomes das colunas. --skip 1 pula o cabeçalho..import --csv categorias.csv categorias_copiaImportar e Exportar CSV
.read ARQUIVORoda os comandos de um arquivo .sql, como se você os digitasse..read consulta.sqlO Terminal do SQLite
.dump ?TABELAS?Escreve o banco (ou só as tabelas pedidas) como comandos SQL: CREATE TABLE + INSERTs. Serve de cópia de segurança em texto..dump categoriasBackup
.backup ARQUIVOCopia o banco aberto para outro arquivo, com segurança (mesmo com o banco em uso)..backup copia.dbBackup
.save ARQUIVOOutro nome do .backup..save copia.db
.restore ARQUIVOO contrário: substitui o banco aberto pelo conteúdo do arquivo..restore copia.dbBackup
.open ARQUIVOFecha o banco atual e abre outro (cria, se não existir)..open copia.dbO Terminal do SQLite
.clone NOVOCopia as tabelas e os dados para um banco novo..clone novo.db
.excelAbre o resultado do próximo comando na planilha do computador..excel
.wwwAbre o resultado do próximo comando no navegador..www
.recoverTenta salvar o máximo de dados de um banco corrompido (o resultado sai como SQL)..recover

A Ana exportou as categorias para CSV com .once e conferiu o arquivo com .shell (que roda um comando do sistema sem sair do sqlite3):

sqlite> .headers on
sqlite> .mode csv
sqlite> .once categorias.csv
sqlite> SELECT * FROM categorias;
sqlite> .shell cat categorias.csv
id,nome,descricao
1,Papelaria,"Material escolar e de escritório"
2,"Eletrônicos","Acessórios e dispositivos eletrônicos"
3,"Casa e Cozinha","Utensílios para o lar"
4,Livros,"Livros, dicionários e guias"
5,Brinquedos,"Brinquedos e jogos para todas as idades"
6,"Esporte e Lazer","Artigos esportivos e de lazer"
7,Alimentos,"Alimentos não perecíveis e regionais"
8,Jardim,"Ferramentas e artigos de jardinagem"
sqlite> .output fornecedores.txt
sqlite> SELECT nome FROM fornecedores;
sqlite> .output
sqlite> .shell head -3 fornecedores.txt
Distribuidora Piauí Center
Loja D'Água
Atlântico Importados

Repare que, depois do .once e do .output, o SELECT não mostrou nada na tela: a saída foi para o arquivo. Agora, o caminho de volta: importar o CSV numa tabela nova. O .import criou a tabela com as colunas do cabeçalho, todas do tipo TEXT:

sqlite> .import --csv categorias.csv categorias_copia
sqlite> .mode box
sqlite> SELECT * FROM categorias_copia LIMIT 2;
┌────┬─────────────┬───────────────────────────────────────┐
│ id │    nome     │               descricao               │
├────┼─────────────┼───────────────────────────────────────┤
│ 1  │ Papelaria   │ Material escolar e de escritório      │
│ 2  │ Eletrônicos │ Acessórios e dispositivos eletrônicos │
└────┴─────────────┴───────────────────────────────────────┘
sqlite> .schema categorias_copia
CREATE TABLE IF NOT EXISTS "categorias_copia"(
"id" TEXT, "nome" TEXT, "descricao" TEXT);

Importar para uma tabela que já existe acrescenta as linhas. Se as linhas repetem a chave primária, cada uma falha, e o .import avisa linha por linha (aqui, com --skip 1 para pular o cabeçalho):

sqlite> .import --csv --skip 1 categorias.csv categorias
categorias.csv:2: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:3: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:4: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:5: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:6: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:7: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:8: INSERT failed: UNIQUE constraint failed: categorias.id
categorias.csv:9: INSERT failed: UNIQUE constraint failed: categorias.id

O .dump de uma tabela, e o .backup seguido de .open na cópia:

sqlite> .dump categorias
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE categorias (
    id        INTEGER PRIMARY KEY,
    nome      TEXT NOT NULL,
    descricao TEXT
);
INSERT INTO categorias VALUES(1,'Papelaria','Material escolar e de escritório');
INSERT INTO categorias VALUES(2,'Eletrônicos','Acessórios e dispositivos eletrônicos');
INSERT INTO categorias VALUES(3,'Casa e Cozinha','Utensílios para o lar');
INSERT INTO categorias VALUES(4,'Livros','Livros, dicionários e guias');
INSERT INTO categorias VALUES(5,'Brinquedos','Brinquedos e jogos para todas as idades');
INSERT INTO categorias VALUES(6,'Esporte e Lazer','Artigos esportivos e de lazer');
INSERT INTO categorias VALUES(7,'Alimentos','Alimentos não perecíveis e regionais');
INSERT INTO categorias VALUES(8,'Jardim','Ferramentas e artigos de jardinagem');
COMMIT;
sqlite> .backup copia.db
sqlite> .open copia.db
sqlite> .databases
main: /home/ana/copia.db r/w
sqlite> .tables
categorias    fornecedores  itens_pedido  produtos
clientes      funcionarios  pedidos

E o .read, rodando o arquivo consulta.sql (que tem a linha SELECT count(*) AS produtos FROM produtos;):

sqlite> .open loja.db
sqlite> .read consulta.sql
┌──────────┐
│ produtos │
├──────────┤
│ 45       │
└──────────┘

A sessão

ComandoO que fazExemplo
.quitSai do sqlite3 (também Ctrl+D)..quit
.exit ?CÓDIGO?Sai, com um código de saída opcional (útil em scripts)..exit 1
.help ?-all? ?PADRÃO?A ajuda: a lista toda, ou os detalhes de um comando..help mode
.versionA versão do SQLite e do compilador..version
.shell CMD, .system CMDRoda um comando do sistema (como ls ou cat) sem sair do sqlite3..shell ls
.cd PASTAMuda a pasta de trabalho (onde .once, .import… procuram os arquivos)..cd Documentos
.timeout MSEspera até MS milissegundos por um banco trancado, em vez de dar database is locked na hora..timeout 2000
.bail on|offPara no primeiro erro (útil ao rodar um script com .read)..bail on
.parameterDefine valores para parâmetros (?1, :nome) das consultas..parameter set :id 3
sqlite> .version
SQLite 3.50.4 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3
zlib version 1.3.1
gcc-14.2.0 (64-bit)
sqlite> .quit
$

Todos os comandos (o .help do 3.50.4)

A lista completa, na ordem do .help. A coluna do meio é o texto original, exatamente como o sqlite3 3.50.4 mostra; ?…? quer dizer "opcional" e a|b, "a ou b". Os comandos marcados com * são para usos avançados (testes, depuração, extensões).

ComandoNo .helpEm português
.archive ... *Manage SQL archivesGerencia arquivos compactados no formato SQLAR
.auth ON|OFF *Show authorizer callbacksMostra as chamadas do "autorizador"
.backup ?DB? FILEBackup DB (default "main") to FILECopia o banco (o padrão é o "main") para o arquivo
.bail on|offStop after hitting an error. Default OFFPara no primeiro erro. Padrão: desligado
.cd DIRECTORYChange the working directory to DIRECTORYMuda a pasta de trabalho
.changes on|offShow number of rows changed by SQLMostra quantas linhas cada comando mudou
.check GLOB *Fail if output since .testcase does not matchFalha se a saída não casar com o padrão (para testes)
.clone NEWDBClone data into NEWDB from the existing databaseCopia os dados para um banco novo
.connection [close] [#] *Open or close an auxiliary database connectionAbre ou fecha uma conexão extra
.crlf ?on|off?Whether or not to use \r\n line endingsUsar ou não o fim de linha do Windows (\r\n)
.databasesList names and files of attached databasesLista os bancos abertos e seus arquivos
.dbconfig ?op? ?val? *List or change sqlite3_db_config() optionsLista ou muda opções internas da conexão
.dbinfo ?DB?Show status information about the databaseInformações sobre o arquivo do banco
.dbtotxt *Hex dump of the database fileOs bytes do arquivo em hexadecimal
.dump ?OBJECTS?Render database content as SQLEscreve o conteúdo do banco como SQL
.echo on|offTurn command echo on or offRepetir ou não cada comando
.eqp on|off|full|...Enable or disable automatic EXPLAIN QUERY PLANLiga ou desliga o EXPLAIN QUERY PLAN automático
.excelDisplay the output of next command in spreadsheetMostra a saída do próximo comando numa planilha
.exit ?CODE?Exit this program with return-code CODESai do programa com o código de saída CODE
.expert *EXPERIMENTAL. Suggest indexes for queriesEXPERIMENTAL. Sugere índices para as consultas
.explain ?on|off|auto?Change the EXPLAIN formatting mode. Default: autoMuda o formato da saída do EXPLAIN. Padrão: auto
.filectrl CMD ... *Run various sqlite3_file_control() operationsOperações internas no arquivo
.fullschema ?--indent?Show schema and the content of sqlite_stat tablesO esquema e as tabelas de estatística
.headers on|offTurn display of headers on or offLiga ou desliga os nomes das colunas
.help ?-all? ?PATTERN?Show help text for PATTERNMostra a ajuda
.import FILE TABLEImport data from FILE into TABLEImporta os dados do arquivo para a tabela
.indexes ?TABLE?Show names of indexesMostra os nomes dos índices
.intck ?STEPS_PER_UNLOCK? *Run an incremental integrity check on the dbVerifica a integridade do banco aos poucos
.limit ?LIMIT? ?VAL? *Display or change the value of an SQLITE_LIMITMostra ou muda um limite interno
.lint OPTIONS *Report potential schema issues.Aponta possíveis problemas no esquema
.load FILE ?ENTRY? *Load an extension libraryCarrega uma extensão
.log FILE|on|off *Turn logging on or off. FILE can be stderr/stdoutLiga ou desliga o registro (log)
.mode ?MODE? ?OPTIONS?Set output modeEscolhe o modo de saída
.nonce STRING *Suspend safe mode for one command if nonce matchesSuspende o modo seguro por um comando
.nullvalue STRINGUse STRING in place of NULL valuesMostra STRING no lugar de NULL
.once ?OPTIONS? ?FILE?Output for the next SQL command only to FILEA saída só do próximo comando vai para o arquivo
.open ?OPTIONS? ?FILE?Close existing database and reopen FILEFecha o banco atual e abre o arquivo
.output ?FILE?Send output to FILE or stdout if FILE is omittedManda a saída para o arquivo (ou de volta para a tela)
.parameter CMD ...Manage SQL parameter bindingsGerencia os valores dos parâmetros
.print STRING...Print literal STRINGEscreve o texto
.progress N *Invoke progress handler after every N opcodesChama o "medidor de progresso" a cada N operações
.prompt MAIN CONTINUEReplace the standard promptsTroca os prompts
.quitStop interpreting input stream, exit if primary.Sai do programa
.read FILERead input from FILE or command outputLê e roda os comandos do arquivo
.recoverRecover as much data as possible from corrupt db.Recupera o máximo de dados de um banco corrompido
.restore ?DB? FILERestore content of DB (default "main") from FILERestaura o banco a partir do arquivo
.save ?OPTIONS? FILEWrite database to FILE (an alias for .backup ...)Grava o banco no arquivo (outro nome do .backup)
.scanstats on|off|est *Turn sqlite3_stmt_scanstatus() metrics on or offLiga ou desliga medidas internas das consultas
.schema ?PATTERN?Show the CREATE statements matching PATTERNMostra os CREATE que casam com o padrão
.separator COL ?ROW?Change the column and row separatorsMuda os separadores de coluna e de linha
.session ?NAME? CMD ... *Create or control sessionsCria ou controla "sessões" (registro de mudanças)
.sha3sum ... *Compute a SHA3 hash of database contentCalcula um resumo SHA3 do conteúdo
.shell CMD ARGS...Run CMD ARGS... in a system shellRoda um comando do sistema
.showShow the current values for various settingsMostra as configurações atuais
.stats ?ARG? *Show stats or turn stats on or offMostra estatísticas, ou liga/desliga
.system CMD ARGS...Run CMD ARGS... in a system shellO mesmo que .shell
.tables ?TABLE?List names of tables matching LIKE pattern TABLELista as tabelas que casam com o padrão do LIKE
.timeout MSTry opening locked tables for MS millisecondsEspera até MS milissegundos por tabelas trancadas
.timer on|offTurn SQL timer on or offLiga ou desliga o cronômetro
.trace ?OPTIONS? *Output each SQL statement as it is runEscreve cada comando SQL enquanto ele roda
.versionShow source, library and compiler versionsMostra as versões
.vfsinfo ?AUX? *Information about the top-level VFSInformações da camada de arquivos (VFS)
.vfslist *List all available VFSesLista as camadas de arquivos disponíveis
.vfsname ?AUX? *Print the name of the VFS stackNome da camada de arquivos em uso
.width NUM1 NUM2 ...Set minimum column widths for columnar outputLarguras mínimas das colunas
.wwwDisplay output of the next command in web browserMostra a saída do próximo comando no navegador

E no editor do guia?

Nenhum comando de ponto funciona no editor, porque ele roda só SQL. Para quase todos os de "ver o banco", existe um jeito em SQL, que funciona em qualquer programa:

No terminalEm SQL (funciona no editor)
.tablesSELECT name FROM sqlite_schema WHERE type = 'table';
.schema categoriasSELECT sql FROM sqlite_schema WHERE name = 'categorias';
.indexesSELECT name FROM sqlite_schema WHERE type = 'index';
as colunas de uma tabelaSELECT name, type FROM pragma_table_info('clientes'); (veja PRAGMAs)
.versionSELECT sqlite_version();

Missão: o .tables não funciona aqui (rode e veja o erro). Troque-o pela consulta SQL que lista as tabelas do banco, a partir da tabela especial sqlite_schema.

.tables
SELECT name FROM sqlite_schema WHERE type = 'table';

Resumo

  • Comandos de ponto são do programa sqlite3, não do SQL: começam com ., um por linha, sem ;.
  • Ver o banco: .tables, .schema, .indexes, .databases, .show.
  • Exibição: .mode box (ou table, column, csv, json…), .headers on, .nullvalue, .width, .timer on.
  • Arquivos: .once/.output para gravar, .import para ler CSV, .read para rodar um .sql, .dump e .backup para cópias.
  • .help lista todos; .help mode detalha um; .quit sai.
  • No editor do guia, use o SQL equivalente (sqlite_schema, pragma_table_info).