SQLite 常用终端命令总结
📌 基础操作 连接数据库 # 打开/创建数据库 sqlite3 database.db # 打开后立即执行SQL并退出 sqlite3 database.db "SELECT * FROM users;" # 以只读方式打开 sqlite3 database.db -readonly 退出数据库 .exit -- 或 .quit 📋 查看命令(最常用) 查看基本信息 -- 查看所有表 .tables -- 查看表结构 .schema table_name -- 查看所有表的创建语句 .schema -- 查看数据库信息 .database -- 查看当前连接的数据库文件 .databases 查看索引和触发器 -- 查看索引 .indexes table_name -- 查看所有索引 .indexes -- 查看触发器 .schema -- 会显示所有触发器定义 📊 查询数据优化 设置显示格式 -- 以表格形式显示(推荐) .mode table -- 以列对齐方式显示 .mode column -- CSV格式导出 .mode csv -- JSON格式输出 .mode json -- 显示表头 .headers on -- 显示行号 .nullvalue NULL -- 将NULL显示为NULL 常用组合设置 -- 生产环境推荐配置 .headers on .mode column .nullvalue NULL -- 导出数据推荐配置 .mode csv .headers on .output output.csv 🔧 数据导入导出 导出数据 -- 导出到CSV文件 .output result.csv SELECT * FROM table_name; .output stdout -- 恢复输出到屏幕 -- 导出为SQL文件(备份) .output backup.sql .dump .output stdout -- 只导出特定表 .output table_backup.sql .dump table_name .output stdout 导入数据 -- 从CSV导入 .mode csv .import data.csv table_name -- 从SQL文件导入 .read backup.sql -- 在命令行中直接导入 sqlite3 database.db < data.sql 🔍 调试与性能 -- 显示当前设置 .show -- 开启SQL执行计时 .timer on -- 查看查询执行计划 .explain EXPLAIN QUERY PLAN SELECT * FROM table_name; -- 查看最近执行的SQL语句 .history 📁 数据库维护 备份和恢复 -- 备份整个数据库 .backup backup.db -- 备份到文件 .backup main backup.db -- 恢复备份 .restore main backup.db 数据库优化 -- 分析表,更新统计信息 ANALYZE; -- 整理数据库,回收空间 VACUUM; -- 检查数据库完整性 PRAGMA integrity_check; -- 查看数据库大小 PRAGMA page_count; PRAGMA page_size; -- 计算数据库大小(字节) SELECT page_count * page_size FROM pragma_page_count(), pragma_page_size(); 🎯 实用脚本示例 1. 快速查询脚本 #!/bin/bash # 快速查询某个表的行数 sqlite3 database.db "SELECT COUNT(*) FROM table_name;" 2. 批量执行SQL文件 # 执行SQL文件并输出结果到文件 sqlite3 database.db < query.sql > result.txt 3. 交互式查询优化 -- 开启这些设置,查询体验最佳 .headers on .mode column .timer on .echo on -- 显示执行的SQL -- 执行长查询时开启 .timer on .explain SELECT * FROM large_table WHERE condition; 💡 常用操作组合 快速查看表结构 -- 查看所有表 .tables -- 查看特定表详情 .schema table_name -- 预览数据(前10行) SELECT * FROM table_name LIMIT 10; 导出特定表为CSV .mode csv .headers on .output output.csv SELECT * FROM table_name WHERE condition; .output stdout .mode table -- 恢复默认 数据库迁移 -- 导出整个数据库 .output full_backup.sql .dump .output stdout -- 只导出表结构 .output schema_only.sql .schema .output stdout ⚡ 快速参考卡片 命令 用途 .tables 列出所有表 .schema 查看表结构 .database 查看数据库信息 .mode [csv|column|table|json] 设置输出格式 .headers on|off 显示/隐藏表头 .output filename 重定向输出到文件 .import file.csv table 导入CSV .dump 导出SQL备份 .backup file.db 创建完整备份 .timer on 显示执行时间 .exit 退出 这些命令基本覆盖了日常开发中90%的SQLite使用场景。遇到复杂查询时,先用 .explain 分析查询计划,用 .timer on 测量性能,然后根据需要进行优化。