以下是对 sqlite3 命令行工具中的各个 .命令 的详细解释和示例:
.help功能: 显示可用命令列表或指定模式的命令帮助。
用法:
.help
或
.help PATTERN
示例:
输入 .help 查看所有命令,或 .help backup 查看与备份相关的命令。
.archive ...功能: 管理SQL存档。
用法: 未提供具体参数说明,可能用于备份和恢复。
示例: 更多细节请参考 SQLite 文档。
.auth ON|OFF功能: 显示授权回调函数的调用情况。
用法:
.auth ON
.auth OFF
示例: 启用认证日志:
.auth ON
.backup ?DB? FILE功能: 备份指定数据库到文件,默认备份 main 数据库。
用法:
.backup FILE
.backup DB FILE
示例: 将当前数据库备份为 backup.db:
.backup backup.db
将名为 other 的数据库备份为 other_backup.db:
.backup other other_backup.db
.bail on|off功能: 设置遇到错误时退出。
用法:
.bail on
.bail off
示例: 启用 bail 模式:
.bail on
.cd DIRECTORY功能: 更改工作目录。
用法:
.cd /path/to/directory
示例: 切换到 Documents 目录:
.cd Documents
.changes on|off功能: 显示每条SQL语句影响的行数。
用法:
.changes on
.changes off
示例: 启用 changes 模式:
.changes on
DELETE FROM table;
-- 输出:1 row affected
.check GLOB功能: 在测试后检查输出是否匹配给定的GLOB模式。
用法:
.check *.sql
示例: 备份后检查结果:
.dump > backup.sql
.check backup.sql
.clone NEWDB功能: 克隆数据到新数据库。
用法:
.clone newdb
示例: 克隆 main 数据库到 clone.db:
.clone clone.db
.connection [close] [#]功能: 管理辅助连接。
用法:
.connection 1
.connection close 2
示例: 列出所有连接:
.connection
关闭编号为3的连接:
.connection close 3
.databases功能: 列出附加数据库及其文件。
用法:
.databases
示例:
sqlite> .databases;
main: /path/to/db.sqlite (current)
temp: (autoclose)
.dbconfig ?op? ?val?功能: 列出或更改数据库配置选项。
用法:
.dbconfig
.dbconfig 3078
.dbconfig 3078 1
示例: 显示所有配置:
.dbconfig
设置配置值:
.dbconfig 3078 1
.dbinfo ?DB?功能: 显示数据库状态信息。
用法:
.dbinfo
.dbinfo temp
示例: 查看 main 数据库的状态:
.dbinfo
查看临时数据库的状态:
.dbinfo temp
.dump ?OBJECTS?功能: 将数据库内容导出为SQL语句。
用法:
.dump
.dump table_name
.dump schema.sqlite
示例: 导出整个数据库到 dump.sql:
.dump > dump.sql
仅导出 users 表的结构和数据:
.dump users
.echo on|off功能: 控制命令回显。
用法:
.echo on
.echo off
示例: 禁用回显以减少输出:
.echo off
SELECT * FROM table;
.eqp on|off|full功能: 控制EXPLAIN QUERY PLAN的显示。
用法:
.eqp on
.eqp full
.eqp off
示例: 显示查询计划:
.eqp on
SELECT * FROM table LIMIT 10;
.excel功能: 将结果输出到电子表格。
用法:
.excel
示例: 执行查询后,结果会自动打开在Excel中:
SELECT * FROM sales;
.excel
.exit ?CODE?功能: 退出程序或主实例。
用法:
.exit
.exit 0
示例: 正常退出并返回代码 0:
.exit 0
.expert功能: 建议索引以优化查询。
用法:
.expert
示例: 执行一个查询后,获取索引建议:
.expert
SELECT * FROM table WHERE id > 100;
.explain ?on|off|auto?功能: 控制EXPLAIN输出模式。
用法:
.explain on
.explain auto
.explain off
示例: 使用自动模式显示执行计划:
.explain
SELECT * FROM table;
.filectrl CMD ...功能: 执行文件控制命令。
用法: 参考 SQLite 文档中的 sqlite3_file_control 接口。
示例: 更多信息请参考官方文档。
.fullschema ?--indent?功能: 显示架构和统计表内容,可带缩进。
用法:
.fullschema
.fullschema --indent 4
示例: 带缩进显示:
.fullschema --indent 4
.headers on|off功能: 显示结果标题。
用法:
.headers on
.headers off
示例: 禁用标题输出:
.headers off
SELECT * FROM table;
.help ?-all? ?PATTERN?功能: 显示帮助信息。
用法:
.help
.help -all
.help backup
示例: 查看所有命令:
.help -all
.import FILE TABLE功能: 将文件内容导入表中。
用法:
.import data.csv table_name
示例: 导入 CSV 文件到 users 表:
.import users_data.csv users
.indexes ?TABLE?功能: 显示指定表的索引。
用法:
.indexes
.indexes table_name
示例: 列出所有表的索引:
.indexes
列出 users 表的索引:
.indexes users
.limit ?LIMIT? ?VAL?功能: 显示或设置SQLITE_LIMIT参数。
用法:
.limit
.limit 100
.limit 100 5000
示例: 查看当前限制:
.limit
设置最大嵌套级数为20:
.limit 100 20
.lint OPTIONS功能: 分析模式问题。
用法:
.lint
.lint --help
示例: 查看 lint 命令的帮助:
.lint --help
.load FILE ?ENTRY?功能: 加载扩展库文件。
用法:
.load extension.so
示例: 加载加密扩展:
.load sqlite-encrypt.so
.log FILE|on|off功能: 控制日志输出。
用法:
.log stdout
.log off
示例: 启用日志到标准输出:
.log on
.mode MODE ?OPTIONS?功能: 设置输出模式,如 csv、html 等。
用法:
.mode csv
.mode html
示例: 切换到 CSV 模式:
.mode csv
SELECT * FROM table;
.nonce STRING功能: 使用一次性密码绕过安全措施。
用法:
.nonce your_nonce_string
示例: 禁用安全措施一次:
.nonce abcdef
DELETE FROM table;
.nullvalue STRING功能: 指定显示NULL值的字符串。
用法:
.nullvalue NULL
.nullvalue ''
示例: 显示NULL为 empty string:
.nullvalue ''
SELECT id, name FROM table;
.once ?OPTIONS? ?FILE?功能: 将下一个查询结果输出到指定文件。
用法:
.once output.txt
.once --append output.txt
示例: 导出数据到文件:
.once backup.csv
SELECT * FROM sales;
.open ?OPTIONS? ?FILE?功能: 关闭现有数据库并打开新文件。
用法:
.open new.db
.open --readwrite existing.db
示例: 打开新数据库:
.open data.db
.output ?FILE?功能: 设置输出目标,重定向到文件或标准输出。
用法:
.output
.output output.log
示例: 输出结果到日志文件:
.output log.txt
SELECT * FROM table;
.parameter CMD ...功能: 管理SQL参数绑定。
用法:
.parameter add PNAME VALUE
.parameter show
示例: 设置参数:
.parameter add :name 'Alice'
SELECT :name;
.print STRING...功能: 打印固定字符串或变量。
用法:
.print Hello, World!
.print %s %d Alice 30
示例: 输出带格式的字符串:
.print %.2f 100.5
.progress N功能: 设置每N步调用进度处理函数。
用法:
.progress 1000
示例: 每1000步显示进度:
.progress 1000
INSERT INTO table VALUES (...);
.prompt MAIN CONTINUE功能: 替换默认提示符。
用法:
.prompt '$sqlite> ' '$continue>'
示例: 更改主提示和继续提示:
.prompt mainPrompt continuePrompt
.quit功能: 退出解释器,若为主实例则完全退出。
用法:
.quit
示例: 正常退出:
.quit
.read FILE功能: 从文件读取输入或命令输出。
用法:
.read input.sql
.read < command_output
示例: 执行文件中的SQL语句:
.read init_schema.sql
.recover功能: 恢复损坏的数据库。
用法:
.recover corrupt.db
示例: 尝试恢复损坏的数据库:
sqlite> .open corrupt.db
sqlite> .recover
.restore ?DB? FILE功能: 恢复数据库内容。
用法:
.restore backup.sql
.restore main backup.sql
示例: 恢复 main 数据库:
.restore main backup.sql
.save ?OPTIONS? FILE功能: 将数据库写入文件,作为备份。
用法:
.save backup.db
.save --cipher aes256 backup_encrypted.db
示例: 导出加密数据库:
.save --cipher aes256 encrypted.db
.scanstats on|off|est功能: 控制sqlite3_stmt_scanstatus指标。
用法:
.scanstats on
.scanstats off
.scanstats est
示例: 启用扫描统计:
.scanstats on
SELECT * FROM table;
.schema ?PATTERN?功能: 显示创建表的语句,可带模式过滤。
用法:
.schema
.schema users
示例: 显示所有表的结构:
.schema
显示匹配 'user' 的表结构:
.schema user%
.separator COL ?ROW?功能: 改变列和行分隔符。
用法:
.separator ,
.separator \n
.separator , "\n"
示例: 设置逗号分隔值,换行分隔行:
.separator , "\n"
SELECT * FROM table;
.session ?NAME? CMD ...功能: 创建或控制会话。
用法:
.session new_session
.session list
.session close old_session
示例: 列出会话:
.session list
关闭一个会话:
.session close session1
.sha3sum ...功能: 计算数据库内容的SHA3哈希。
用法:
.sha3sum
.sha3sum sha3_256
示例: 显示所有数据的 SHA3 哈希:
.sha3sum
.shell CMD ARGS...功能: 在系统壳中执行命令。
用法:
.shell ls -l
.shell mkdir backup
示例: 执行外部命令:
.shell ping google.com
.show功能: 显示当前的各种设置值。
用法:
.show
示例: 显示所有配置:
.show
.stats ?ARG?功能: 显示统计信息或开启/关闭统计功能。
用法:
.stats
.stats on
.stats off
示例: 开启统计模式:
.stats on
SELECT * FROM table;
.system CMD ARGS...功能: 在系统壳中执行命令。
用法:
.system ls -a
示例: 执行外部命令:
.system echo Hello, World!
.tables ?TABLE?功能: 列出所有表名,可带模式过滤。
用法:
.tables
.tables 'my_table%'
示例: 显示所有表:
.tables
显示以 'user' 开头的表:
.tables user*
.timeout MS功能: 设置等待锁定的时间。
用法:
.timeout 1000
示例: 等待最多1秒获取锁:
.timeout 1000
UPDATE table SET value = 'test';
.timer on|off功能: 控制SQL执行时间的显示。
用法:
.timer on
.timer off
示例: 启用计时器:
.timer on
SELECT * FROM large_table;
.trace ?OPTIONS?功能: 输出正在运行的SQL语句。
用法:
.trace on
.trace off
.trace output.sql
示例: 跟踪查询输出:
.trace trace_output.log
SELECT * FROM table;
.version功能: 显示版本信息,包括源代码、库和编译器版本。
用法:
.version
示例: 显示 SQLite 版本:
.version
.vfsinfo ?AUX?功能: 显示VFS层的信息。
用法:
.vfsinfo
.vfsinfo aux_name
示例: 显示所有VFS信息:
.vfsinfo
.vfslist功能: 列出所有可用的VFS模块。
用法:
.vfslist
示例: 列出当前支持的VFS:
.vfslist
.vfsname ?AUX?功能: 显示当前使用的VFS名称,可指定辅助VFS。
用法:
.vfsname
.vfsname aux_name
示例: 显示主VFS:
.vfsname
.width NUM1 NUM2 ...功能: 设置列的最小宽度,以美观显示结果。
用法:
.width 10 20 30
示例: 设置三列的宽度为10、20、30:
.width 10 20 30
SELECT id, name, email FROM users;
这些命令提供了强大的数据库管理和操作功能。通过结合使用这些命令,可以进行备份、恢复、性能优化、数据分析等多种任务。建议在实际应用中多加练习,并参考 SQLite 官方文档以获得更详细的信息和高级用法。