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"
  1. 查看 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数据库的一些简单命令,希望对你有所帮助。