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.
- 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 respondenear ".": syntax error. - Digitou um que não existe? O
sqlite3respondeError: 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:
.tabfunciona como.tables. Nesta página, use sempre o nome completo.
Ver o banco
| Comando | O que faz | Exemplo | Aula |
|---|---|---|---|
.tables | Lista as tabelas (e views). Com um padrão do LIKE, só as que casam. | .tables c% | Comandos de Ponto |
.schema | Mostra os CREATE de tudo, ou só do que casar com o padrão. --indent organiza o texto. | .schema categorias | CREATE TABLE |
.indexes | Lista os índices (de uma tabela, ou de todas). | .indexes produtos | Índices |
.databases | Os bancos abertos e o arquivo de cada um. | .databases | |
.fullschema | Como o .schema, mais as tabelas de estatística do ANALYZE. | .fullschema | VACUUM e ANALYZE |
.dbinfo | Informações do arquivo: tamanho da página, número de páginas, codificação… | .dbinfo | PRAGMAs Úteis |
.show | Mostra 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
| Comando | O que faz | Exemplo |
|---|---|---|
.mode MODO | Escolhe o formato da saída (tabela Os modos). Sem o modo, mostra o atual. | .mode box |
.headers on|off | Liga 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 TEXTO | O 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 TEXTO | Escreve o texto, do jeito que está. | .print Olá, Ana! |
.echo on|off | Repete cada comando antes do resultado (bom em scripts). | .echo on |
.timer on|off | Mostra quanto tempo cada comando levou. | .timer on |
.changes on|off | Mostra quantas linhas cada comando mudou. | .changes on |
.eqp on|off|full | Mostra o plano de execução (EXPLAIN QUERY PLAN) antes de cada consulta. | .eqp on |
.prompt PRINCIPAL CONTINUAÇÃO | Troca 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:
| Modo | Descrição do .help mode | Em português / para quê |
|---|---|---|
list | Values delimited by "|" | Valores separados por |. O padrão. É também o formato da "saída canônica" das missões do guia. |
box | Tables using unicode box-drawing characters | Tabela com bordas de linha contínua. O mais bonito para ler. |
table | ASCII-art table | Tabela com bordas de +, - e | (funciona em qualquer terminal). |
column | Output in columns. (See .width) | Colunas alinhadas, sem bordas. |
markdown | Markdown table format | Tabela pronta para colar num arquivo Markdown (GitHub, por exemplo). |
csv | Comma-separated values | Valores separados por vírgula, para planilhas (veja Importar e Exportar CSV). |
tabs | Tab-separated values | Separados por tabulação. |
line | One value per line | Um valor por linha, coluna = valor. Bom para linhas com muitas colunas. |
json | Results in a JSON array | Uma lista JSON de objetos. |
insert TABELA | SQL insert statements for TABLE | Cada linha vira um INSERT, para copiar dados para outro banco. |
quote | Escape answers as for SQL | Cada valor escrito como no SQL (texto entre aspas simples). |
html | HTML <table> code | Linhas de uma tabela HTML. |
qbox | Shorthand for "box --wrap 60 --quote" | Como o box, quebrando textos longos em 60 caracteres e com os valores entre aspas. |
ascii | Columns/rows delimited by 0x1F and 0x1E | Separadores invisíveis (caracteres de controle), para trocar dados com programas. |
tcl | TCL list elements | Listas 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
| Comando | O que faz | Exemplo | Aula |
|---|---|---|---|
.once ARQUIVO | Manda a saída do próximo comando para um arquivo. | .once categorias.csv | Importar e Exportar CSV |
.output ARQUIVO | Manda toda a saída para o arquivo, até um .output sem nada (que volta para a tela). | .output fornecedores.txt | Importar e Exportar CSV |
.import ARQUIVO TABELA | Lê 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_copia | Importar e Exportar CSV |
.read ARQUIVO | Roda os comandos de um arquivo .sql, como se você os digitasse. | .read consulta.sql | O 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 categorias | Backup |
.backup ARQUIVO | Copia o banco aberto para outro arquivo, com segurança (mesmo com o banco em uso). | .backup copia.db | Backup |
.save ARQUIVO | Outro nome do .backup. | .save copia.db | |
.restore ARQUIVO | O contrário: substitui o banco aberto pelo conteúdo do arquivo. | .restore copia.db | Backup |
.open ARQUIVO | Fecha o banco atual e abre outro (cria, se não existir). | .open copia.db | O Terminal do SQLite |
.clone NOVO | Copia as tabelas e os dados para um banco novo. | .clone novo.db | |
.excel | Abre o resultado do próximo comando na planilha do computador. | .excel | |
.www | Abre o resultado do próximo comando no navegador. | .www | |
.recover | Tenta 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
| Comando | O que faz | Exemplo |
|---|---|---|
.quit | Sai 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 |
.version | A versão do SQLite e do compilador. | .version |
.shell CMD, .system CMD | Roda um comando do sistema (como ls ou cat) sem sair do sqlite3. | .shell ls |
.cd PASTA | Muda a pasta de trabalho (onde .once, .import… procuram os arquivos). | .cd Documentos |
.timeout MS | Espera até MS milissegundos por um banco trancado, em vez de dar database is locked na hora. | .timeout 2000 |
.bail on|off | Para no primeiro erro (útil ao rodar um script com .read). | .bail on |
.parameter | Define 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).
| Comando | No .help | Em português |
|---|---|---|
.archive ... * | Manage SQL archives | Gerencia arquivos compactados no formato SQLAR |
.auth ON|OFF * | Show authorizer callbacks | Mostra as chamadas do "autorizador" |
.backup ?DB? FILE | Backup DB (default "main") to FILE | Copia o banco (o padrão é o "main") para o arquivo |
.bail on|off | Stop after hitting an error. Default OFF | Para no primeiro erro. Padrão: desligado |
.cd DIRECTORY | Change the working directory to DIRECTORY | Muda a pasta de trabalho |
.changes on|off | Show number of rows changed by SQL | Mostra quantas linhas cada comando mudou |
.check GLOB * | Fail if output since .testcase does not match | Falha se a saída não casar com o padrão (para testes) |
.clone NEWDB | Clone data into NEWDB from the existing database | Copia os dados para um banco novo |
.connection [close] [#] * | Open or close an auxiliary database connection | Abre ou fecha uma conexão extra |
.crlf ?on|off? | Whether or not to use \r\n line endings | Usar ou não o fim de linha do Windows (\r\n) |
.databases | List names and files of attached databases | Lista os bancos abertos e seus arquivos |
.dbconfig ?op? ?val? * | List or change sqlite3_db_config() options | Lista ou muda opções internas da conexão |
.dbinfo ?DB? | Show status information about the database | Informações sobre o arquivo do banco |
.dbtotxt * | Hex dump of the database file | Os bytes do arquivo em hexadecimal |
.dump ?OBJECTS? | Render database content as SQL | Escreve o conteúdo do banco como SQL |
.echo on|off | Turn command echo on or off | Repetir ou não cada comando |
.eqp on|off|full|... | Enable or disable automatic EXPLAIN QUERY PLAN | Liga ou desliga o EXPLAIN QUERY PLAN automático |
.excel | Display the output of next command in spreadsheet | Mostra a saída do próximo comando numa planilha |
.exit ?CODE? | Exit this program with return-code CODE | Sai do programa com o código de saída CODE |
.expert * | EXPERIMENTAL. Suggest indexes for queries | EXPERIMENTAL. Sugere índices para as consultas |
.explain ?on|off|auto? | Change the EXPLAIN formatting mode. Default: auto | Muda o formato da saída do EXPLAIN. Padrão: auto |
.filectrl CMD ... * | Run various sqlite3_file_control() operations | Operações internas no arquivo |
.fullschema ?--indent? | Show schema and the content of sqlite_stat tables | O esquema e as tabelas de estatística |
.headers on|off | Turn display of headers on or off | Liga ou desliga os nomes das colunas |
.help ?-all? ?PATTERN? | Show help text for PATTERN | Mostra a ajuda |
.import FILE TABLE | Import data from FILE into TABLE | Importa os dados do arquivo para a tabela |
.indexes ?TABLE? | Show names of indexes | Mostra os nomes dos índices |
.intck ?STEPS_PER_UNLOCK? * | Run an incremental integrity check on the db | Verifica a integridade do banco aos poucos |
.limit ?LIMIT? ?VAL? * | Display or change the value of an SQLITE_LIMIT | Mostra ou muda um limite interno |
.lint OPTIONS * | Report potential schema issues. | Aponta possíveis problemas no esquema |
.load FILE ?ENTRY? * | Load an extension library | Carrega uma extensão |
.log FILE|on|off * | Turn logging on or off. FILE can be stderr/stdout | Liga ou desliga o registro (log) |
.mode ?MODE? ?OPTIONS? | Set output mode | Escolhe o modo de saída |
.nonce STRING * | Suspend safe mode for one command if nonce matches | Suspende o modo seguro por um comando |
.nullvalue STRING | Use STRING in place of NULL values | Mostra STRING no lugar de NULL |
.once ?OPTIONS? ?FILE? | Output for the next SQL command only to FILE | A saída só do próximo comando vai para o arquivo |
.open ?OPTIONS? ?FILE? | Close existing database and reopen FILE | Fecha o banco atual e abre o arquivo |
.output ?FILE? | Send output to FILE or stdout if FILE is omitted | Manda a saída para o arquivo (ou de volta para a tela) |
.parameter CMD ... | Manage SQL parameter bindings | Gerencia os valores dos parâmetros |
.print STRING... | Print literal STRING | Escreve o texto |
.progress N * | Invoke progress handler after every N opcodes | Chama o "medidor de progresso" a cada N operações |
.prompt MAIN CONTINUE | Replace the standard prompts | Troca os prompts |
.quit | Stop interpreting input stream, exit if primary. | Sai do programa |
.read FILE | Read input from FILE or command output | Lê e roda os comandos do arquivo |
.recover | Recover as much data as possible from corrupt db. | Recupera o máximo de dados de um banco corrompido |
.restore ?DB? FILE | Restore content of DB (default "main") from FILE | Restaura o banco a partir do arquivo |
.save ?OPTIONS? FILE | Write 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 off | Liga ou desliga medidas internas das consultas |
.schema ?PATTERN? | Show the CREATE statements matching PATTERN | Mostra os CREATE que casam com o padrão |
.separator COL ?ROW? | Change the column and row separators | Muda os separadores de coluna e de linha |
.session ?NAME? CMD ... * | Create or control sessions | Cria ou controla "sessões" (registro de mudanças) |
.sha3sum ... * | Compute a SHA3 hash of database content | Calcula um resumo SHA3 do conteúdo |
.shell CMD ARGS... | Run CMD ARGS... in a system shell | Roda um comando do sistema |
.show | Show the current values for various settings | Mostra as configurações atuais |
.stats ?ARG? * | Show stats or turn stats on or off | Mostra estatísticas, ou liga/desliga |
.system CMD ARGS... | Run CMD ARGS... in a system shell | O mesmo que .shell |
.tables ?TABLE? | List names of tables matching LIKE pattern TABLE | Lista as tabelas que casam com o padrão do LIKE |
.timeout MS | Try opening locked tables for MS milliseconds | Espera até MS milissegundos por tabelas trancadas |
.timer on|off | Turn SQL timer on or off | Liga ou desliga o cronômetro |
.trace ?OPTIONS? * | Output each SQL statement as it is run | Escreve cada comando SQL enquanto ele roda |
.version | Show source, library and compiler versions | Mostra as versões |
.vfsinfo ?AUX? * | Information about the top-level VFS | Informações da camada de arquivos (VFS) |
.vfslist * | List all available VFSes | Lista as camadas de arquivos disponíveis |
.vfsname ?AUX? * | Print the name of the VFS stack | Nome da camada de arquivos em uso |
.width NUM1 NUM2 ... | Set minimum column widths for columnar output | Larguras mínimas das colunas |
.www | Display output of the next command in web browser | Mostra 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 terminal | Em SQL (funciona no editor) |
|---|---|
.tables | SELECT name FROM sqlite_schema WHERE type = 'table'; |
.schema categorias | SELECT sql FROM sqlite_schema WHERE name = 'categorias'; |
.indexes | SELECT name FROM sqlite_schema WHERE type = 'index'; |
| as colunas de uma tabela | SELECT name, type FROM pragma_table_info('clientes'); (veja PRAGMAs) |
.version | SELECT 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(outable,column,csv,json…),.headers on,.nullvalue,.width,.timer on. - Arquivos:
.once/.outputpara gravar,.importpara ler CSV,.readpara rodar um.sql,.dumpe.backuppara cópias. .helplista todos;.help modedetalha um;.quitsai.- No editor do guia, use o SQL equivalente (
sqlite_schema,pragma_table_info).