sqlite数据库的常用命令
我现在使用的主流程序就是hugo,这程序的最大缺点就是无法动态搜索数据,只能是依靠静态搜索,所以为了方便我写了一个搜索页面,这个页面就是使用sqlite数据库来存储搜索数据,下面我就来介绍一下sqlite数据库的常用命令。
分类:
sqlite数据库的常用命令
1. 创建数据库
sqlite3 test.db
2. 创建表
CREATE TABLE IF NOT EXISTS `search` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`title` TEXT,
`url` TEXT,
`content` TEXT,
`date` TEXT,
`tags` TEXT
);
3. 数据库查询步骤
首先进入到虚拟环境中VENV
(.venv) root@Jlnfmo:/home/xhugo/api# cp /home/xhugo/api/database/adult.db /home/xhugo/api/database/adult.db.bak_$(date +%Y%m%d)
(.venv) root@Jlnfmo:/home/xhugo/api# sqlite3 /home/xhugo/api/database/adult.db 进到数据库
SQLite version 3.45.1 2024-01-30 16:01:20
Enter ".help" for usage hints.
sqlite> .tables 查表名
adult_videos adult_videos_fts_content adult_videos_fts_idx
adult_videos_fts adult_videos_fts_data
adult_videos_fts_config adult_videos_fts_docsize
sqlite>
– 1. 清空主表 DELETE FROM adult_videos;
– 2. 清空 FTS 全文索引表(可选,但推荐) DELETE FROM adult_videos_fts;
– 3. 重置自增 ID(SQLite 用 sqlite_sequence 表管理) DELETE FROM sqlite_sequence WHERE name = ‘adult_videos’;
– 4. 验证是否清空 SELECT COUNT(*) FROM adult_videos; ✅ 最后一条命令应返回: 🛠️ 退出 SQLite .quit
正确操作:清空 vod.db 中的所有数据(保留表结构) 在 /home/hugo/data 在数据库目录下执行:
然后运行以下命令来安全清空主表和 FTS 表:
sqlite3 vod.db "
DELETE FROM vod;
DELETE FROM vod_fts;
DELETE FROM sqlite_sequence WHERE name = 'vod';
"
查看 vod 表行数
sqlite3 vod.db "SELECT COUNT(*) FROM vod;"
查看 FTS 表行数(应该也是 0)
```sql` sqlite3 vod.db “SELECT COUNT(*) FROM vod_fts;”
-- 1. 先清零所有分类的文章数(安全)
```sql
UPDATE zbp_category SET cate_Count = 0;
查询表结构
sqlite3 /home/hugo/site/tu-jmtty/api/jmtty.db ".schema"
- 查看 posts 表中的所有数据
SELECT * FROM posts;
1. 清空 posts 表的数据(但保留表结构)
如果你想要删除表中所有的数据但是保留表结构,可以使用以下命令:
DELETE FROM posts;
如果你想同时重置自动递增计数器(即让新的记录从 ID 1 开始),你可以添加:
DELETE FROM sqlite_sequence WHERE name='posts';
或者更彻底一点,执行 VACUUM; 来回收空间:
DELETE FROM posts;
DELETE FROM sqlite_sequence WHERE name='posts';
VACUUM;
验证是否干净
SELECT COUNT(*) FROM posts;
sqlite> SELECT COUNT(*) FROM posts;
0
sqlite> SELECT * FROM sqlite_sequence WHERE name = 'posts';
sqlite> .quit
以上是sqlite数据库的一些简单命令,希望对你有所帮助。