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