
---

## 一、交互式命令（以 `.` 开头）
在 SQLite 命令行中执行：

| 命令 | 说明 |
|------|------|
| `.help` | 查看所有命令帮助 |
| `.open 文件名` | 打开或创建数据库文件 |
| `.databases` | 显示当前打开的数据库 |
| `.tables` | 显示所有表 |
| `.schema [表名]` | 显示表结构（不加表名则显示所有） |
| `.dump [表名]` | 导出数据库或表的 SQL 语句（用于备份） |
| `.output 文件名` | 将查询结果输出到文件（默认输出到屏幕） |
| `.read 脚本文件` | 执行 SQL 脚本文件 |
| `.mode 模式` | 设置输出模式（如 `csv`, `column`, `list`, `html` 等） |
| `.headers on/off` | 显示/隐藏列标题 |
| `.quit` 或 `.exit` | 退出 SQLite 命令行 |
| `.import 文件 表名` | 从 CSV 文件导入数据到表 |
| `.show` | 显示当前设置（如输出模式、分隔符等） |
| `.indexes [表名]` | 显示索引信息 |
| `.backup 文件名` | 备份数据库到文件 |

---

## 二、常用 SQL 语句

### 1. 数据库与表操作
```sql
-- 创建表
CREATE TABLE 表名 (
    列1 数据类型 [约束],
    列2 数据类型 [约束],
    ...
);

-- 删除表
DROP TABLE 表名;

-- 重命名表
ALTER TABLE 旧表名 RENAME TO 新表名;

-- 添加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;

-- 删除列（SQLite 3.35+ 支持）
ALTER TABLE 表名 DROP COLUMN 列名;
```

### 2. 数据操作（CRUD）
```sql
-- 插入数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);

-- 查询数据
SELECT * FROM 表名;
SELECT 列1, 列2 FROM 表名 WHERE 条件;

-- 更新数据
UPDATE 表名 SET 列1=新值 WHERE 条件;

-- 删除数据
DELETE FROM 表名 WHERE 条件;
```

### 3. 索引操作
```sql
-- 创建索引
CREATE INDEX 索引名 ON 表名 (列名);

-- 删除索引
DROP INDEX 索引名;
```

### 4. 视图操作
```sql
-- 创建视图
CREATE VIEW 视图名 AS SELECT ...;

-- 删除视图
DROP VIEW 视图名;
```

### 5. 事务控制
```sql
BEGIN TRANSACTION;  -- 开始事务
COMMIT;            -- 提交事务
ROLLBACK;          -- 回滚事务
```

### 6. 实用查询
```sql
-- 条件查询
SELECT * FROM 表名 WHERE 条件;

-- 排序
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;

-- 分组统计
SELECT 列, COUNT(*) FROM 表名 GROUP BY 列;

-- 连接查询
SELECT * FROM 表1 JOIN 表2 ON 连接条件;

-- 限制结果数量
SELECT * FROM 表名 LIMIT 数量 OFFSET 偏移;
```

---

## 三、常用函数示例
```sql
SELECT COUNT(*) FROM 表名;           -- 计数
SELECT MAX(列), MIN(列) FROM 表名;   -- 最大/最小值
SELECT AVG(列), SUM(列) FROM 表名;   -- 平均值/求和
SELECT datetime('now');             -- 当前时间
SELECT DATE('now', '+1 day');       -- 日期计算
```

---

## 四、使用示例
```bash
# 1. 进入 SQLite 命令行并打开数据库
sqlite3 test.db

# 2. 查看所有表
.tables

# 3. 创建表
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);

# 4. 插入数据
INSERT INTO users (name) VALUES ('张三');

# 5. 查询数据
SELECT * FROM users;

# 6. 导出 SQL 备份
.output backup.sql
.dump

# 7. 退出
.quit
```

---

## 注意事项
1. SQLite 中 **没有用户管理和权限控制**
2. 所有数据库保存在单个文件中（`.db` 或 `.sqlite`）
3. 大部分 SQL 标准语法支持，但某些高级功能（如存储过程、外键约束需显式启用）有限制
4. 可通过 `.read` 命令批量执行 SQL 脚本
