sqlite3 命令行工具使用指南
更新時間:2025年06月25日 14:49:40 作者:漫談網絡
本文系統(tǒng)介紹sqlite3 CLI的啟動、數據庫操作、元數據查詢、數據導入導出及輸出格式化命令,涵蓋文件管理、備份恢復、性能統(tǒng)計等實用功能,并說明命令分類、SQL語法和資源限制,助力高效數據庫管理,對sqlite3 命令行工具相關知識感興趣的朋友一起看看吧
一、啟動與退出
啟動數據庫連接
sqlite3 [database_file] # 打開/創(chuàng)建數據庫文件(如 test.db) sqlite3 # 啟動臨時內存數據庫 (:memory:) sqlite3 :memory: # 顯式啟動內存數據庫
- 文件不存在時自動創(chuàng)建
- 不指定文件名則使用臨時內存數據庫(關閉后消失)
退出 CLI
.exit .quit Ctrl + D (Linux/macOS) Ctrl + C (Windows)
二、數據庫與文件操作
命令 | 說明 | 示例 |
---|---|---|
.open [FILENAME] | 打開/切換數據庫 | .open backup.db |
.backup ?DB? FILE | 在線備份數據庫 | .backup main backup_2023.db |
.restore ?DB? FILE | 從文件恢復數據庫 | .restore main backup_2023.db |
.dump ?TABLE? | 導出數據庫為 SQL 腳本 | .dump > full.sql .dump users > users.sql |
.read FILENAME | 執(zhí)行 SQL 腳本文件 | .read import_data.sql |
.save FILE | 保存內存數據庫到文件 | .save mem_backup.db |
三、元數據查詢
命令 | 說明 |
---|---|
.databases | 顯示所有附加數據庫 |
.tables ?PATTERN? | 列出表(支持通配符) |
.schema ?TABLE? | 顯示表結構(CREATE語句) |
.indexes ?TABLE? | 列出索引 |
.fullschema | 顯示完整 schema(包括隱藏信息) |
四、數據操作與導入導出
CSV 導入導出
-- 設置 CSV 模式 .mode csv .headers on -- 導出時包含列名 -- 導入 CSV .import users.csv users -- 文件 → 表 -- 導出 CSV .output users_export.csv SELECT * FROM users; .output stdout -- 恢復輸出到終端
其他格式
.mode list -- 自定義分隔符 (默認 '|') .mode insert -- 生成 INSERT 語句 .mode json -- JSON 格式輸出 .separator "," -- 設置分隔符(如 CSV) .nullvalue NULL -- 指定 NULL 的顯示值
五、查詢輸出格式化
命令 | 效果 | 示例輸出 |
---|---|---|
.mode list | 豎線分隔 | 1|Alice|30 |
.mode csv | CSV 格式 | "1","Alice","30" |
.mode column | 表格對齊 | 1 Alice 30 |
.mode box | 表格+邊框 | ┌──┬───────┬──┐ │1 │ Alice │30│ |
.mode json | JSON 數組 | [{"id":1,"name":"Alice","age":30}] |
.headers on/off | 顯示/隱藏列名 | |
.width NUM1 NUM2 | 設置列寬 | .width 5 10 4 |
.timer on/off | 顯示查詢耗時 | Run Time: real 0.002 user 0.000000 sys 0.000000 |
六、實用功能
命令 | 說明 |
---|---|
.show | 顯示當前所有設置 |
.stats on/off | 開關性能統(tǒng)計 |
.timefmt FORMAT | 設置日期格式 |
.shell CMD | 執(zhí)行系統(tǒng)命令 |
.system CMD | 同上(別名) |
.prompt MAIN CONTINUE | 自定義提示符 |
七、高級操作
附加多個數據庫
ATTACH DATABASE 'aux.db' AS aux; SELECT * FROM main.users JOIN aux.orders ...; .databases -- 查看附加數據庫
執(zhí)行 PRAGMA 配置
PRAGMA journal_mode=WAL; -- 啟用 WAL 模式 PRAGMA synchronous=NORMAL; -- 平衡性能與安全 PRAGMA foreign_keys=ON; -- 啟用外鍵約束
事務控制
BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id=1; UPDATE accounts SET balance = balance + 100 WHERE id=2; COMMIT; -- 或 ROLLBACK
八、快捷示例場景
場景 1:從 CSV 創(chuàng)建新表并導入
sqlite3 finance.db # 創(chuàng)建數據庫
-- 創(chuàng)建表 CREATE TABLE transactions ( id INTEGER PRIMARY KEY, date TEXT, amount REAL, description TEXT ); -- 導入 CSV .mode csv .import transactions.csv transactions -- 驗證數據 SELECT count(*) FROM transactions;
場景 2:備份與恢復
# 完整備份 sqlite3 production.db ".backup main backup_20231001.db" # 恢復數據庫 sqlite3 restored.db ".restore main backup_20231001.db"
九、注意事項
命令分類
- 點命令 (.):以
.
開頭(如.tables
),不需分號結尾 - SQL 語句:標準 SQL(
SELECT
,CREATE
等),必須用分號;
結尾
- 點命令 (.):以
特殊字符轉義
在字符串中使用單引號時需轉義:INSERT INTO logs (message) VALUES ('It''s a test');
資源限制
查看限制:PRAGMA compile_options;
常見限制:SQLITE_MAX_LENGTH=1,000,000,000
(字符串/Blob最大長度)
掌握這些命令后,您可通過 sqlite3 CLI 高效完成日常數據庫管理任務!
到此這篇關于sqlite3 命令行工具使用指南的文章就介紹到這了,更多相關sqlite3 命令行工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SQLite3 在嵌入式C環(huán)境中存儲音頻/視頻文件的最優(yōu)方案
本文探討了SQLite3在嵌入式C環(huán)境中存儲音視頻文件的優(yōu)化方案,推薦采用文件路徑存儲結合元數據管理,兼顧效率與資源限制,小文件可使用BLOB存儲,輔以壓縮和故障安全機制,適合資源受限的嵌入式系統(tǒng),對SQLite3存儲文件相關知識感興趣的朋友一起看看吧2025-06-06Win11下基于VS2022編譯SQLite3源碼的實現(xiàn)步驟
本文主要介紹了Win11下基于VS2022編譯SQLite3源碼的實現(xiàn)步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-09-09