3.4 KiB
3.4 KiB
一、交互式命令(以 . 开头)
在 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. 数据库与表操作
-- 创建表
CREATE TABLE 表名 (
列1 数据类型 [约束],
列2 数据类型 [约束],
...
);
-- 删除表
DROP TABLE 表名;
-- 重命名表
ALTER TABLE 旧表名 RENAME TO 新表名;
-- 添加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;
-- 删除列(SQLite 3.35+ 支持)
ALTER TABLE 表名 DROP COLUMN 列名;
2. 数据操作(CRUD)
-- 插入数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
-- 查询数据
SELECT * FROM 表名;
SELECT 列1, 列2 FROM 表名 WHERE 条件;
-- 更新数据
UPDATE 表名 SET 列1=新值 WHERE 条件;
-- 删除数据
DELETE FROM 表名 WHERE 条件;
3. 索引操作
-- 创建索引
CREATE INDEX 索引名 ON 表名 (列名);
-- 删除索引
DROP INDEX 索引名;
4. 视图操作
-- 创建视图
CREATE VIEW 视图名 AS SELECT ...;
-- 删除视图
DROP VIEW 视图名;
5. 事务控制
BEGIN TRANSACTION; -- 开始事务
COMMIT; -- 提交事务
ROLLBACK; -- 回滚事务
6. 实用查询
-- 条件查询
SELECT * FROM 表名 WHERE 条件;
-- 排序
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;
-- 分组统计
SELECT 列, COUNT(*) FROM 表名 GROUP BY 列;
-- 连接查询
SELECT * FROM 表1 JOIN 表2 ON 连接条件;
-- 限制结果数量
SELECT * FROM 表名 LIMIT 数量 OFFSET 偏移;
三、常用函数示例
SELECT COUNT(*) FROM 表名; -- 计数
SELECT MAX(列), MIN(列) FROM 表名; -- 最大/最小值
SELECT AVG(列), SUM(列) FROM 表名; -- 平均值/求和
SELECT datetime('now'); -- 当前时间
SELECT DATE('now', '+1 day'); -- 日期计算
四、使用示例
# 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
注意事项
- SQLite 中 没有用户管理和权限控制
- 所有数据库保存在单个文件中(
.db或.sqlite) - 大部分 SQL 标准语法支持,但某些高级功能(如存储过程、外键约束需显式启用)有限制
- 可通过
.read命令批量执行 SQL 脚本