SQLite 是一款輕量級、零設定、無伺服器程序的關聯式資料庫引擎,廣泛應用於行動應用、桌面軟體、嵌入式系統。本文從安裝、常用指令、管理工具到 C# 實戰範例,完整帶你上手 SQLite 開發。
| 功能 | 指令 |
|---|---|
| 顯示表結構 | .schema [table] |
| 列出所有表/視圖 | .tables |
| 顯示指定表索引 | .indices [table] |
| 匯出資料庫至 SQL 檔 | .output filename.sql → .dump → .output stdout |
| 從 SQL 檔匯入 | .read filename.sql |
| 匯出 CSV | .output file.csv → .separator , → select * from table → .output stdout |
| 從 CSV 匯入 | .import file.csv table_name |
| 備份資料庫 | sqlite3 dbfile.db .dump > backup.sql |
| 還原資料庫 | sqlite3 dbfile.db < backup.sql |

> sqlite3 mydb.db # 開啟/建立資料庫 > .databases # 查看附加的資料庫 > CREATE TABLE hero (hero_id INT PRIMARY KEY, hero_name NVARCHAR(10)); > INSERT INTO hero VALUES (1, '薩滿'); > SELECT * FROM hero; > .quit
官網:SQLiteSpy,綠色免安裝,介面類似 SSMS,支援建表、查詢、編輯資料,操作直覺。

using System;
using System.Data.SQLite;
namespace ConsoleApp
{
class Program
{
static readonly string DB_PATH = "Data Source=E:/database/sqlite/arena.db";
static void Main(string[] args)
{
Insert();
Select();
Update();
Select();
Delete();
}
static void Select()
{
using (var con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sql = "SELECT * FROM hero";
using (var cmd = new SQLiteCommand(sql, con))
using (var dr = cmd.ExecuteReader())
{
while (dr.Read())
Console.WriteLine($"{dr["hero_id"]} {dr["hero_name"]}");
}
}
}
static void Insert()
{
using (var con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sql = "INSERT INTO hero (hero_id, hero_name) VALUES (1, '薩滿')";
new SQLiteCommand(sql, con).ExecuteNonQuery();
}
}
static void Update()
{
using (var con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sql = "UPDATE hero SET hero_name = '盜賊' WHERE hero_id = 1";
new SQLiteCommand(sql, con).ExecuteNonQuery();
}
}
static void Delete()
{
using (var con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sql = "DELETE FROM hero";
new SQLiteCommand(sql, con).ExecuteNonQuery();
}
}
}
}
關鍵點:善用 `using` 區塊確保連線與命令物件正確釋放;參數化查詢請使用 `cmd.Parameters.AddWithValue("@p", val)` 防止 SQL Injection。
SQLite 以單一檔案、零部署特性,成為輕量級應用的最佳資料庫選擇。配合 ADO.NET 標準介面,C# 開發者幾乎零學習成本即可上手。下一步可探索 Entity Framework Core 搭配 SQLite,進一步簡化資料存取程式碼。