数据库

发布于 更新于

AI总结: 本文介绍了在Ubuntu 20.04上安装和使用SQLite3的基本步骤,包括数据库连接、自动压缩设置、常用命令以及如何添加字段和处理冲突更新。用户可以通过PRAGMA命令设置页面大小和自动压缩选项,以优化数据库存储效率。提供的命令示例帮助用户查看表结构、查询数据以及以不同模式显示结果。改进建议包括提供更多关于SQLite的使用场景和最佳实践的说明,以帮助用户更好地理解和应用这些功能。

Ubuntu 20.04

安装

apt install sqlite3  

连接数据库

sqlite3 your_db_file  

开启自动压缩

PRAGMA page_size 允许你设置数据库的页面大小,间接影响数据库的存储效率。较大的页面大小(例如 4096 或 8192 字节)有时能减少碎片并提高压缩效率。

PRAGMA page_size = 4096;  
PRAGMA auto_vacuum 设置,它可以在每次删除数据时自动压缩数据库,减少未使用空间。

PRAGMA auto_vacuum = FULL;  

FULL:表示启用自动压缩,每次删除数据时,SQLite 会自动清理空白空间。

INCREMENTAL:允许你手动触发压缩。

NONE:禁用自动压缩。

命令

sqlite> .tables  # 显示所有表  
sqlite> .schema table_name  # 显示指定表的结构  
sqlite> .schema  # 显示所有表的结构  
sqlite> .fullschema  # 显示所有表的完整结构 包含触发器等  
sqlite> .mode column # 以列模式显示  
sqlite> .headers on # 显示列名  
sqlite> select * from t_ad limit 1;  
id  type  name            sort  status  remark  created_at                  updated_at  
--  ----  --------------  ----  ------  ------  --------------------------  ----------  
1   0     abcd.011q2l.cn  0     0               2021-11-18 13:24:32.152277  
sqlite> .mode list # 以列表模式显示  
sqlite> .headers off # 不显示列名  
sqlite> select * from t_ad limit 1;  
1|0|abcd.011q2l.cn|0|0||2021-11-18 13:24:32.152277|  

添加字段

ALTER TABLE users ADD COLUMN phone_number TEXT NOT NULL;  

冲突时更新

INSERT INTO table_name(column1, column2) VALUES(value1, value2)  
ON CONFLICT(column1) DO UPDATE SET  
  column2 = excluded.column2;  

column1 需要有唯一约束