2025-03-29 14:35:49 +08:00

114 lines
2.3 KiB
Markdown
Executable File

# sqlite3
> 关系型数据库
> 只能本地存储, 适合小型本地项目, 或者应用和数据库在同台服务器上, 多读少写
UnQLite
[SQLite 教程 | 菜鸟教程](https://www.runoob.com/sqlite/sqlite-tutorial.html)
macos自带, 终端输入 sqlite3 就可以进入命令
```sh
sqlite3 mydatabase.db # 创建文件
```
## 指令
```sqlite
--这是注释
.open filename -- 打开文件, 没有该文件就创建
.show -- 显示帮助信息
.q -- 退出
.databases -- 显示数据库
```
## 数据导入导出
```sh
sqlite3 test.db .dump > testDB.sql # 导出
sqlite3 test.db < testDB.sql # 导入
```
## 数据类型
|存储类型 |描述|
|:--|:--|
|null|空值|
|int|整型|
|text|字符串|
|blob|布尔值|
|integer|带符号的整数, 根据值大小存储在1, 2, 3, 4, 6或8字节中, 一般当id用|
|real|浮点值, 8字节|
## 创建表
```sqlite
create table database_name.table_name(
column1 datatype primary key not null,
column2 datatype
);
.tables -- 显示表
.schema -- 获取表信息
```
## 删除表
```sqlite
drop table database_name.table_name;
```
## 插入
```sqlite
insert into table_name[(column1,column2)] values(value1,value2);
```
## 一个表填充到另一个表
```sqlite
insert into first_table_name [(column1,column2)] select column1, column2 from second_table_name [where condition];
```
## beter-sqlite
[koa2+better-sqlite3实现增删改查\_疆\~的博客-CSDN博客](https://blog.csdn.net/qq_40323256/article/details/125508713)
## 连接远程的sqlite数据库
> 起源: alist关掉索引后db文件仍然非常大, 清除对缩小体积没效果
> 解决方法:
> 1. 导出备份数据
> 2. 停止docker服务
> 3. 重命名data.db 为 data_bak.db
> 4. 重启动docker服务, 自动生成 新的 data.db
> 5. 编辑新数据库的用户名和密码为旧的
> 6. 登录并导入
1. sqlite不支持网络连接
2. 网上教程推荐创建web服务, 通过http访问 `.db` 文件
3. 个人喜欢使用 sshfs 挂载远程目录到本地
1. macos 安装 `sshfs`: https://osxfuse.github.io/ (可能需要先装 macFUSE )
```sh
# 或者安装
brew install Caskroom/cask/osxfuse
brew install sshfs
```
3. 连接
```sh
sshfs -C -o reconnect 用户名@ip:远程路径 本地路径
```
3. 卸载
```sh
umount 本地路径
```
## 外键约束
`foreign`