SQLite 是一个轻量级、嵌入式、零配置的 SQL 数据库引擎,广泛应用于桌面软件、移动应用、Web 服务以及物联网设备。


常用命令速查表

功能命令
打开数据库sqlite3 mydb.db
查看所有表.tables
查看表结构.schema table_name
导出 SQL.dump > backup.sql
导出 CSV.mode csv + .output file.csv
备份数据库.backup backup.db
恢复数据库.restore backup.db
退出命令行.quit

一、简介

SQLite 是一个自包含的数据库引擎,不依赖服务器,也无需安装独立的数据库服务进程。数据库内容保存在单个文件中。
它支持大多数 SQL92 标准功能,包括事务、触发器、视图和索引。


二、安装与初始化

2.1 安装

Linux:

sudo apt-get install sqlite3 libsqlite3-dev

macOS:

brew install sqlite

Windows:
https://sqlite.org/download.html 下载预编译二进制包并解压,将 sqlite3.exe 添加到系统 PATH。

2.2 创建数据库

sqlite3 mydatabase.db
以上命令将在当前目录下创建一个名为 mydatabase.db 的数据库文件,并进入交互模式。

退出 SQLite:

.quit

三、基本操作

3.1 创建表

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    age INTEGER,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

3.2 插入数据

INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 25);
INSERT INTO users (name, email, age) VALUES ('Bob', 'bob@example.com', 30);

3.3 查询数据

SELECT * FROM users;
SELECT name, age FROM users WHERE age > 25 ORDER BY age DESC;

3.4 更新数据

UPDATE users SET age = 28 WHERE name = 'Alice';

3.5 删除数据

DELETE FROM users WHERE id = 1;

四、数据库管理

4.1 查看所有表

.tables

4.2 查看表结构

.schema users

4.3 导出与导入数据

导出为 SQL 文件:

sqlite3 mydatabase.db .dump > backup.sql

导入数据:

sqlite3 newdb.db < backup.sql

导出为 CSV 文件:

sqlite3 mydatabase.db
.mode csv
.output users.csv
SELECT * FROM users;
.output stdout

五、事务与约束

5.1 启动事务

BEGIN TRANSACTION;
UPDATE users SET age = age + 1;
COMMIT;

5.2 回滚事务

ROLLBACK;

5.3 常见约束

  • PRIMARY KEY:主键唯一。
  • UNIQUE:字段值不能重复。
  • NOT NULL:不能为空。
  • CHECK:自定义条件验证。
  • FOREIGN KEY:外键约束。

六、索引与优化

6.1 创建索引

CREATE INDEX idx_users_email ON users(email);

6.2 删除索引

DROP INDEX idx_users_email;

6.3 性能建议

  • 为常用查询条件添加索引。
  • 尽量使用整数类型作为主键。
  • 使用 EXPLAIN QUERY PLAN 分析查询。

七、备份与恢复

7.1 命令行备份

sqlite3 mydatabase.db ".backup backup.db"

7.2 恢复数据库

sqlite3 new.db ".restore backup.db"

八、SQLite 与编程语言集成

8.1 Python 示例

import sqlite3

conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)
conn.close()

8.2 Node.js 示例

import sqlite3 from 'sqlite3';
const db = new sqlite3.Database('mydatabase.db');

db.serialize(() => {
  db.each("SELECT id, name FROM users", (err, row) => {
    console.log(row.id + ": " + row.name);
  });
});

db.close();

九、参考资料


本文档适用于 SQLite 3.x 版本,适合开发、测试及嵌入式数据库场景使用。

标签: none

仅有一条评论

  1. 华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
    华纳公司合作开户所需材料?电话号码15587291507 微信STS5099

添加新评论